This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Problem with removing atexit.
- To: "H . J . Lu" <hjl at lucon dot org>
- Subject: Re: Problem with removing atexit.
- From: Ben Collins <bcollins at debian dot org>
- Date: Tue, 1 May 2001 11:52:45 -0400
- Cc: "Adam J. Richter" <adam at yggdrasil dot com>,GNU C Library <libc-alpha at sourceware dot cygnus dot com>
- References: <200105010658.XAA10472@adam.yggdrasil.com> <20010501081624.A29072@lucon.org>
On Tue, May 01, 2001 at 08:16:24AM -0700, H . J . Lu wrote:
> 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?
This seems to be the same problem I ran into on non-i386, with a gcc
that didn't have the weaksym patch. It's not a compatibility problem,
it's a bug in gcc. The DSO's need to be recompiled with a recent gcc
(2.95.4 from CVS, or gcc-3.x)
Ben
--
-----------=======-=-======-=========-----------=====------------=-=------
/ Ben Collins -- ...on that fantastic voyage... -- Debian GNU/Linux \
` bcollins@debian.org -- bcollins@openldap.org -- bcollins@linux.com '
`---=========------=======-------------=-=-----=-===-======-------=--=---'