problem with building 64 bit library - symbols seem to be getting messed up - SOLVED

Ishfak F Bhagat bishfak at
Thu Jan 8 00:01:59 EST 2004

Found the problem !
my sandbox was in NFS space and that was causing this corruption. If I
have a local sandbox, everything works fine !

Wonder if it is my NFS server (which happens to be an AIX Machine) or the
SLES 8 NFS client that is buggy.


Ishfak F Bhagat/India/IBM at IBMIN
Sent by: owner-linuxppc64-dev at
01/07/2004 10:59 AM

        To:     linuxppc64-dev at
        Subject:        Re: problem with building 64 bit library - symbols
seem to be getting messed up

Oops, my mail did not go as ASCII and got base64 encoded !

Here it is again:

I am building a 64 bit library on ppc linux using the gcc (cross) compiler
During linking I get the following errors :

        ------------------- link errs ------------------
/BUILD/sb/ldapdevnew/obj/ppc_linux_2/libraries/libldap/ssl/64/getdn.o: In
function `no symbol':
multiple definition of `no symbol'
first defined here
Warning: size of symbol `' changed from 212 to 2444 in
/BUILD/sb/ldapdevnew/obj/ppc_linux_2/libraries/libldap/ssl/64/getdn.o: In
function `list_delete_esc':
multiple definition of `list_delete_esc'
defined here
Warning: size of symbol `list_delete_esc' changed from 3404 to 24 in

going thru the nm output for the above .o file, I realized that the
symbols are getting messed up. Few of the initial characters for most
symbols are getting stripped off,  and some symbols just blank. E.g. the
last symbol is seen as '8z' but is actually 'utf8z'
in the src file !

        ----------------- part of the nm output ------------------
00000000000000ad d
0000000000000120 T
0000000000000e9c T
0000000000002808 T
0000000000002a78 T
0000000000000228 D
00000000000003d8 D
0000000000000468 D
0000000000006360 T
0000000000000498 D
00000000000063c8 T
0000000000000510 D
00000000000072ac T
0000000000000528 D
00000000000073d0 T
0000000000000540 D
00000000000074d0 T
0000000000004be8 T .ldap_explode_dns
000000000000043d d .ldap_explode_dns2
0000000000000000 T .malloc
0000000000000439 d 2ufn2
0000000000000430 d 8gthan
000000000000042f d 8slasht
000000000000042b d 8z

I use the following command (thru my makefile) for compiling the above
file :

        ----------------------- compile command ----------------------
powerpc64-linux-gcc -c -O0
-DFILTERFILE="\"/usr/ldap/etc/ldapfilter.conf\"" -DLDAPV3
-D_ALL_SOURCE -mno-altivec -mabi=no-altivec -D_REENTRANT -D__64BIT__
-DPPC__64 -fPIC -nostartfiles
        ----------------------- compile command ----------------------

Any clues to what is going wrong?

NOTE: The above errors are noticed only on some files. I am able to build
some other libraries successfully and the above errors are only noticed on

some .c files for this particular library.

Does it look like a compiler bug? I searched the SuSe website and 3.2
seems to be the latest GCC compiler.

Any help is greatly appreciated.

Thanks and Regards,
Ishfak Bhagat
Staff Software Engineer
IBM India Software Labs, Pune
Tie-Line - 92-47022
Tel - 91 20 26901022
        (91 20 26982424, Extn: 1022)
Fax - 91 20 26982425

** Sent via the linuxppc64-dev mail list. See

More information about the Linuxppc64-dev mailing list