DSO reference error with binutils 2.14

Vijayaraghavan R vijayaraghavan.ragunathan@oracle.com
Fri May 14 19:50:00 GMT 2004


Hi,

Although my C test was done with ld to get shared library, Oracle seems 
to be using gcc for the purpose. The output I notice on screen is:

gcc -o /u02/oracle/product/10.1.0/oms/rdbms/lib/oracle 
-L/u02/oracle/product/10.1.0/oms/rdbms/lib/ 
-L/u02/oracle/product/10.1.0/oms/lib/  -Wl,-E 
/u02/oracle/product/10.1.0/oms/rdbms/lib/opimai.o 
/u02/oracle/product/10.1.0/oms/rdbms/lib/ssoraed.o 
/u02/oracle/product/10.1.0/oms/rdbms/lib/ttcsoi.o 
/u02/oracle/product/10.1.0/oms/lib/nautab.o 
/u02/oracle/product/10.1.0/oms/lib/naeet.o 
/u02/oracle/product/10.1.0/oms/lib/naect.o 
/u02/oracle/product/10.1.0/oms/lib/naedhs.o 
/u02/oracle/product/10.1.0/oms/rdbms/lib/config.o  -lserver9 -lodm9 
-lskgxp9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 -lgeneric9 
/u02/oracle/product/10.1.0/oms/rdbms/lib/defopt.o -lknlopt -lslax9 
-lpls9  -lplp9 -lserver9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 
-lgeneric9 -lknlopt -lslax9 -lpls9  -lplp9 `cat 
/u02/oracle/product/10.1.0/oms/rdbms/lib/nmliblist` -ljox9 -lserver9 
-lwwg9  `cat /u02/oracle/product/10.1.0/oms/lib/ldflags`    -lnsslb9 
-lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnnz9 -lnl9 -lnro9 `cat 
/u02/oracle/product/10.1.0/oms/lib/ldflags`    -lnsslb9 -lncrypt9 
-lnsgr9 -lnzjs9 -ln9 -lnnz9 -lnl9 -lmm -lnls9  -lcore9 -lnls9 -lcore9 
-lnls9 -lxml9 -lcore9 -lunls9 `cat 
/u02/oracle/product/10.1.0/oms/lib/ldflags`    -lnsslb9 -lncrypt9 
-lnsgr9 -lnzjs9 -ln9 -lnnz9 -lnl9 -lnro9 `cat 
/u02/oracle/product/10.1.0/oms/lib/ldflags`    -lnsslb9 -lncrypt9 
-lnsgr9 -lnzjs9 -ln9 -lnnz9 -lnl9  -ltrace9 -lnls9  -lcore9 -lnls9 
-lcore9 -lnls9 -lxml9 -lcore9 -lunls9 `if /usr/bin/ar tv 
/u02/oracle/product/10.1.0/oms/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > 
/dev/null 2>&1 ; then echo " " ; else echo "-lordsdo9"; fi` -lctxc9 
-lctx9 -lzx9 -lgx9 -lctx9 -lzx9 -lgx9 -lordimt9 -lnls9  -lcore9 -lnls9 
-lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lsnls9 -lunls9   `cat 
/u02/oracle/product/10.1.0/oms/lib/sysliblist` 
-Wl,-rpath,/u02/oracle/product/10.1.0/oms/lib:/lib:/usr/lib -lm    `cat 
/u02/oracle/product/10.1.0/oms/lib/sysliblist` -ldl -lm
/usr/bin/ld: /u02/oracle/product/10.1.0/oms/rdbms/lib/oracle: hidden 
symbol `__fixunssfdi' in 
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc.a(_fixunssfdi.oS) is 
referenced by DSO
collect2: ld returned 1 exit status

Regards
Vijay

H. J. Lu wrote:

>You can't use ld --shared to create shared library. You should use
>"gcc --shared" instead. In your case, your DSO needs -lgcc when it
>is built.
>
>
>H.J.
>On Fri, May 14, 2004 at 08:53:57PM +0530, Vijayaraghavan Ragunathan wrote:
>  
>
>>Hi,
>>
>>Thanks for the reply.
>>This is an error that I received when linking oracle software on RHAS 
>>3.0 . But I can reproduce the problem with a simple c program wherein I 
>>use ld to generate a shared library. I notice that a similar problem was 
>>reported earlier and HJ had given sone code fix. But I want a fix which 
>>will go into ld or its libraries so that I can build oracle executables.
>>
>>Thanks
>>Vijay
>>
>>H. J. Lu wrote:
>>
>>    
>>
>>>On Fri, May 14, 2004 at 06:46:22PM +0530, Vijayaraghavan R wrote:
>>>
>>>
>>>      
>>>
>>>>Hi,
>>>>
>>>>While trying to build some shared library and executable , I get the 
>>>>following error with ld:
>>>>      hidden symbol `__fixunssfdi' in 
>>>>/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc.a(_fixunssfdi.oS) is 
>>>>referenced by DSO
>>>>     collect2: ld returned 1 exit status
>>>>
>>>>  
>>>>
>>>>        
>>>>
>>>A testcase?
>>>
>>>
>>>H.J.
>>>
>>>
>>>      
>>>




More information about the Binutils mailing list