This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Versioning mess proved!!!
- To: drepper at cygnus dot com (Ulrich Drepper)
- Subject: Re: Versioning mess proved!!!
- From: Roland McGrath <roland at gnu dot org>
- Date: Mon, 2 Oct 2000 16:59:15 -0400 (EDT)
- Cc: Geoff Keating <geoffk at cygnus dot com>, Franz dot Sirl-kernel at lauterbach dot com, philb at gnu dot org, howarth at fuse dot net, libc-alpha at sourceware dot cygnus dot com, aj at suse dot de
> Geoff Keating <geoffk@cygnus.com> writes:
> > The test must be done when the data reference is resolved. If the
> > data reference would be resolved to a PLT entry, and the data
> > reference is weak, then it must be checked that there is a real
> > definition somewhere as well as the PLT entry. I think this will be
> > easy to fit into the current do-lookup logic without any significant
> > performance impact.
>
> But this will impact programs which expect lazy relocation. Imagine a
> program running dlopen() with RTLD_GLOBAL to satisfy such a undefined
> reference.
I don't follow you. Geoff is talking about data references, which are
always relocated at startup. Such references resolve to zero now even
though lazy relocation of the corresponding PLT references might later be
resolved differently after a dlopen(,RTLD_GLOBAL).
> I'm not really sure whether we should try to work on these things.
I would hope that the ELF spec (especially the new one you all have been
working on) would be clear on the correct behavior in these cases.