This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Problem with removing atexit.
- To: "Adam J. Richter" <adam at yggdrasil dot com>
- Subject: Problem with removing atexit.
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Tue, 1 May 2001 08:16:24 -0700
- Cc: GNU C Library <libc-alpha at sourceware dot cygnus dot com>
- References: <200105010658.XAA10472@adam.yggdrasil.com>
On Mon, Apr 30, 2001 at 11:58:11PM -0700, Adam J. Richter wrote:
> baldur[501] cd /usr/lib
> baldur[502] objdump --dynamic-sym libgpm.so libcurses.so | grep atexit
> 00000000 D *UND* 00000000 atexit
^^^^^^^^^^^^
Here is your problem. You have an unversioned reference to atexit.
Since the default atexit has been removed from libc.so and only
the atexit with version GLIBC_2.0 remains, any references to the
unversioned atexit will get a run-time error or have to be resolved
at the link time. You have to find out why you have unversioned
reference to atexit in DSO. It should only happen if you
1. Build the DSO against glibc 2.0.x. Or
2. Build the DSO without -lc. All the newer gcc should pass -lc to
ld when you do "gcc -shared" unless you tell gcc not to do so.
You have to find out what happened to your DSOs.
Now, the question is, do we provide backward binary compatibility to
DSOs built against glibc 2.0.x? Any comments?
H.J.