send2vinnie / mclinker

Automatically exported from code.google.com/p/mclinker
Other
0 stars 0 forks source link

Add DT_NEEDED processing #104

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
When linking against a shared library, also load symbols from libs referenced 
via DT_NEEDED. This behavior is platform specific, i.e. modern binutils decided 
to screw ELF semantics and some platforms use that behavior while others don't.

Original issue reported on code.google.com by joerg.sonnenberger@googlemail.com on 17 Dec 2012 at 9:33

GoogleCodeExporter commented 9 years ago
Found this issue when linking fbsd kerberos5/libexec/digest-service (all)

mclinker would report undefined reference error, but gnu ld would find the 
definition in the DT_NEEDED of libkdc.so.

$ ld.mcld --sysroot=/usr/obj/usr/src/tmp --eh-frame-hdr -dynamic-linker 
/libexec/ld-elf.so.1 --hash-style=both --enable-new-dtags -m elf_i386_fbsd -o 
/tmp/digest-service /usr/obj/usr/src/tmp/usr/lib/crt1.o 
/usr/obj/usr/src/tmp/usr/lib/crti.o /usr/obj/usr/src/tmp/usr/lib/crtbegin.o 
-L/usr/obj/usr/src/tmp/usr/lib digest-service.o -lhdb -lkdc 
/usr/obj/usr/src/kerberos5/libexec/digest-service/../../lib/libheimipcs/libheimi
pcs.a -lkrb5 -lroken -lasn1 -lcrypto -lcrypt 
/usr/obj/usr/src/kerberos5/libexec/digest-service/../../lib/libvers/libvers.a 
-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s 
--no-as-needed /usr/obj/usr/src/tmp/usr/lib/crtend.o 
/usr/obj/usr/src/tmp/usr/lib/crtn.o
Error: undefined reference to `heim_ntlm_calculate_ntlm1'
Error: undefined reference to `heim_ntlm_verify_ntlm2'

$ ld --sysroot=/usr/obj/usr/src/tmp --eh-frame-hdr -dynamic-linker 
/libexec/ld-elf.so.1 --hash-style=both --enable-new-dtags -m elf_i386_fbsd -o 
/tmp/digest-service /usr/obj/usr/src/tmp/usr/lib/crt1.o 
/usr/obj/usr/src/tmp/usr/lib/crti.o /usr/obj/usr/src/tmp/usr/lib/crtbegin.o 
-L/usr/obj/usr/src/tmp/usr/lib digest-service.o -lhdb -lkdc 
/usr/obj/usr/src/kerberos5/libexec/digest-service/../../lib/libheimipcs/libheimi
pcs.a -lkrb5 -lroken -lasn1 -lcrypto -lcrypt 
/usr/obj/usr/src/kerberos5/libexec/digest-service/../../lib/libvers/libvers.a 
-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s 
--no-as-needed /usr/obj/usr/src/tmp/usr/lib/crtend.o 
/usr/obj/usr/src/tmp/usr/lib/crtn.o -y heim_ntlm_calculate_ntlm1
digest-service.o: reference to heim_ntlm_calculate_ntlm1
/usr/obj/usr/src/tmp/usr/lib/libkdc.so: reference to heim_ntlm_calculate_ntlm1
/usr/obj/usr/src/tmp/usr/lib/libheimntlm.so.11: definition of 
heim_ntlm_calculate_ntlm1

Original comment by pete.c...@gmail.com on 17 Jan 2013 at 9:45

GoogleCodeExporter commented 9 years ago

Original comment by pete.c...@gmail.com on 5 Sep 2013 at 3:40