[sisyphus] Oracle 10g на ALT Linux Server 4.0
Gennadiy Redko
=?iso-8859-1?q?uit1_=CE=C1_zaz=2Ezp=2Eua?=
Чт Июл 26 17:48:39 MSD 2007
Aleksey Novodvorsky пишет:
> 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. Пока.
>
> Так что это наша и только наша проблема.
>
А Вы планируете включать поддержку Oracle в свой Server?
Подробная информация о списке рассылки Sisyphus