[sisyphus] Oracle 10g на ALT Linux Server 4.0
Aleksey Novodvorsky
=?iso-8859-1?q?a=2Ee=2Envdv_=CE=C1_gmail=2Ecom?=
Чт Июл 26 17:21:51 MSD 2007
On 7/26/07, Gennadiy Redko <uit1 на zaz.zp.ua> wrote:
> Damir Shayhutdinov пишет:
> >>>> Не находит объекты из библиотек libskgns.so и libsrvmhas10.so. Оба файла
> >>>> присутствуют в $ORACLE_HOME/lib. Причем если определить переменную
> >>>> USRLIBS="-lskgxns" то объекты этой библиотеки находятся, но вот с prsr_*
> >>>> из libsrvmhas10.so такое не прокатывает. Не могу понять в чем у них
> >>>> разница.
> > Очевидно, что дело все в --as-needed (Известная фича Сизифа и всего 4.0).
> >
> >>>> Единственный способ который помог, так это дописать "-lskgxns
> >>>> -lsrvmhas10" в файл $ORACLE_HOME/lib/ldflags. К сожалению через
> >>>> переменную передать эти параметры мне так и не удалось.
> >>>>
> >>> Попробуйте такой вариант:
> >>>
> >>> USRLIBS="-L$ORACLE_HOME/lib -lskgxns -lsrvmhas10"
> >>>
> >>>
> >> Ну если бы небыло этого -L то и skgxns не находилась. Тем не менее... на
> >> всякий случай попробовал. Вот результат. То что было в USRLIBS
> >> добавляется в конец этой гигантской строки.
> >>
> >>
> >> [oracle на clash lib]$ USRLIBS="-L$ORACLE_HOME/lib -lskgxns -lsrvmhas10"
> >> make -f ins_rdbms.mk ioracle
> >> chmod 755 /opt/oracle/product/10g/bin
> >>
> >> - Linking Oracle
> >> rm -f /opt/oracle/product/10g/rdbms/lib/oracle
> >> gcc -o /opt/oracle/product/10g/rdbms/lib/oracle
> > !!! Внимание: линкуется исполняемый файл под названием oracle !!!
> >
> >> -L/opt/oracle/product/10g/rdbms/lib/ -L/opt/oracle/product/10g/lib/
> > [покусано непринципиальной мешанины символов]
> >> -Wl,-rpath,/opt/oracle/product/10g/lib -lm -L/opt/oracle/product/10g/lib
> >> -lskgxns -lsrvmhas10 `cat /opt/oracle/product/10g/lib/sysliblist` -ldl
> >> -lm -L/opt/oracle/product/10g/lib -lskgxns -lsrvmhas10
> >> -L/opt/oracle/product/10g/lib
> >> /opt/oracle/product/10g/lib//libcore10.a(lcd.o): In function `lcdprm':
> >> lcd.c:(.text+0x8e8): warning: the `gets' function is dangerous and
> >> should not be used.
> >> /opt/oracle/product/10g/lib//libclsra10.so: undefined reference to
> >> `prsr_release_asm_config'
> > !!! Внимание - символов не хватает у объекта libclsra10.so !!!
> > А это не тот объект, который сейчас линкуется. Типичная проблема
> > --as-needed. Товарищи Оракловцы ниасилили обеспечить правильный
> > порядок линковки.
> >
> >
> > Решение 1: каким-либо образом прописать в LDFLAGS флаг -Wl,--no-as-needed
> >
> > Например, в $ORACLE_HOME/lib/ldflags.
> >
> > Решение 2(невероятной сложности): исправить их Makefile и положить
> > куда-нибудь, чтобы все могли пользоваться.
> Напишите в их рассылку.
> Я думаю, что Вам будут только благодарны.
Нет, увы.
> Можно и sr заполнить, но тогда проблему нужно воспроизвести на
> каком-то из поддерживаемых Oracle дистрибутивов.
У них нет as-needed. Пока.
Так что это наша и только наша проблема.
Rgrds, Алексей
Подробная информация о списке рассылки Sisyphus