[Bug 825542] Re: Symbol generation/lookup broken

SSDwellah 825542 at bugs.launchpad.net
Tue Dec 27 05:50:41 UTC 2011


Here is the key to the issue.

/home/user1/source/2.8-dev/src/lib/openssl/lib/libssl.so: could not read
symbols: Invalid operation

I was linking to the shared object as specified on the DSO linking page.
The problem was that when the linker ran I was getting "Invalid
operation". The .so was being built with broken symbols somehow. This
was fixed with some subsequent binutils and did not occur with the the
version that shipped with Ubuntu 11.10 final. I think this can be closed
now.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-defaults in Ubuntu.
https://bugs.launchpad.net/bugs/825542

Title:
  Symbol generation/lookup broken

Status in “gcc-defaults” package in Ubuntu:
  Incomplete

Bug description:
  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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/825542/+subscriptions




More information about the foundations-bugs mailing list