[Bug 825542] [NEW] Symbol generation/lookup broken

SSDwellah 825542 at bugs.launchpad.net
Fri Aug 12 21:50:56 UTC 2011


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
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:
  New

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