Public bug reported: Description: Ubuntu oneiric (development branch) Release: 11.10
I have a C++ project that built fine in an up to date Ubuntu 11.04 environment. After I upgraded this system to Ubuntu 11.10 pre-release, I am now receiving a linker error that there is an undefined symbol. The program uses privately built copies of libcurl and libssl and the libssl libraries and sets LD_LIBRARY_PATH appropriately. The -lssl and -lcurl options ARE being passed to g++ in the link step. The private copy of libssl.a DOES contain that symbol that ld is complaining about. I tried swapping out to a known good version of "ld" but with the same results so I am not convinced that the linker is to blame. Also python complains about llibssl.so and libcrypto.so missing version information. I think that perhaps the shared objects are not being built with correct symbols or the loader doesn't understand how to read them. The output of several commands is below. I thought maybe this had something to do with the stricter DSO linking rules but that doesn't explain why the symbol APPEARS in the text section of libssl.a, which I am linking to with -lssl, and yet ld complains that it is undefined. $make ... truncated for brevity ... /usr/bin/ld: /home/user1/source/2.8-dev/src/lib/libcurl.so: undefined reference to symbol 'SSL_get_verify_result' /usr/bin/ld: note: 'SSL_get_verify_result' is defined in DSO /home/user1/source/2.8-dev/src/lib/openssl/lib/libssl.so so try adding it to the linker command line /home/user1/source/2.8-dev/src/lib/openssl/lib/libssl.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[3]: *** [Target] Error 1 make[2]: *** [obj_d] Error 2 make[1]: *** [Source] Error 2 make: *** [core] Error 2 $ nm lib/openssl/lib/libssl.so | grep SSL_get_verify_result 000000000003a760 T SSL_get_verify_result $python: /home/user1/source/2.8-dev/src/lib/openssl/lib/libcrypto.so.1.0.0: no version information available (required by python) python: /home/user1/source/2.8-dev/src/lib/openssl/lib/libssl.so.1.0.0: no version information available (required by python) ProblemType: Bug DistroRelease: Ubuntu 11.10 Package: g++ 4:4.6.1-2ubuntu3 ProcVersionSignature: Ubuntu 3.0.0-8.10-generic 3.0.1 Uname: Linux 3.0.0-8-generic x86_64 Architecture: amd64 Date: Fri Aug 12 17:33:32 2011 InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007) ProcEnviron: PATH=(custom, user) LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: gcc-defaults UpgradeStatus: Upgraded to /usr/bin/python3: /home/jpocas/source/2.8-dev/src/lib/openssl/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/python3) /usr/bin/python3: /home/jpocas/source/2.8-dev/src/lib/openssl/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/python3) oneiric on 2011-08-10 (1 days ago) ** Affects: gcc-defaults (Ubuntu) Importance: Undecided Status: New ** Tags: g++ gcc ld -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/825542 Title: Symbol generation/lookup broken To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/825542/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs