From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <46A8C141.6040403@altlinux.org> Date: Thu, 26 Jul 2007 10:44:01 -0500 From: Igor Muratov User-Agent: Thunderbird 2.0.0.4 (X11/20070702) MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list References: <46A8D997.2010508@altlinux.org> <200707261641.31294.serpiph@nikiet.ru> <46A8E000.2000303@altlinux.org> <679044850707260605s693bc000g9b6fb42f02cfff6@mail.gmail.com> In-Reply-To: <679044850707260605s693bc000g9b6fb42f02cfff6@mail.gmail.com> X-Enigmail-Version: 0.95.1 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: Re: [sisyphus] =?koi8-r?b?T3JhY2xlIDEwZyDOwSBBTFQgTGludXggU2VydmVy?= =?koi8-r?b?IDQuMA==?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2007 15:44:09 -0000 Archived-At: List-Archive: List-Post: 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