Hi, Upon doing a mock build of yelp-2.28.1-2.fc13 with the new version of binutils (containing the proposed DSO link changes to ld) from http://roland.fedorapeople.org/ld-test/, the build fails.
/usr/bin/ld.bfd: /usr/lib/xulrunner-sdk-1.9.2/lib/libxpcomglue.a(nsGlueLinkingDlopen.o): undefined reference to symbol 'dlopen@@GLIBC_2.1' /usr/bin/ld.bfd: note: 'dlopen@@GLIBC_2.1' is defined in DSO /usr/lib/gcc/i686-redhat-linux/4.4.3/../../../libdl.so so try adding it to the linker command line In the linker line we can see "-ldl -lxpcomeglue" present. -lxpcomglue uses symbols from -ldl, while yelp does not. Since -lxpcomglue is a static library, the -ldl was added to satisfy this. The problem is with the order in which libraries are declared. Since -ldl is declared before -lxpcomglue in the link line, and since nothing in yelp uses symbols from -ldl, it is dropped at that point leaving -lxpcomglue with undefined symbols from -ldl. The following potential solutions were proposed by Roland McGrath to this issue : Rearranging the link line would fix this ("-lxpcomglue -ldl"), or xulrunner-devel could add a libxpcomglue.so linker script containing : AS_NEEDED ( libxpcomglue.a -ldl ) This way any package using -lxpcomglue would not need to know whether it is a shared/static library, and what other libraries it makes use of. Thank-You, -- Roland Grunberg -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel