[sisyphus] Oracle 10g на ALT Linux Server 4.0
Igor Muratov
=?iso-8859-1?q?migor_=CE=C1_altlinux=2Eorg?=
Чт Июл 26 19:44:01 MSD 2007
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.
>
Не прокатывает. Пробовал делать --no-as-needed и --as-needed. Включал
через переменную и через файл. Никакой разницы.
> Решение 2(невероятной сложности): исправить их Makefile и положить
> куда-нибудь, чтобы все могли пользоваться.
>
Это не один makefile. Как минимум 4 файла придется исправлять. Я уж не
говорю про то что они старательно запутаны и полны всяких фишек в стиле
goto и go_нах...
Для начала хотелось бы прото добиться выполнения элементарной операции.
т.е. внятно описаной команды gcc с заранее известными ключами сборки.
Если с этим будет ясно то дальше уже можно поправить makefile.
> _______________________________________________
> Sisyphus mailing list
> Sisyphus на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus
--
With best regards
Igor Muratov
Подробная информация о списке рассылки Sisyphus