This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Versioning mess proved!!!


> From: Ulrich Drepper <drepper@redhat.com>
> Date: 02 Oct 2000 13:20:13 -0700

> Geoff Keating <geoffk@cygnus.com> writes:
> 
> > That is the problem.  The GLOB_DAT relocation is being pointed at the
> > PLT entry in the executable, even if the symbol is not defined
> > anywhere.
> 
> OK.  So weak data references should not be resolved to weak and
> undefined PLT entries.  This sounds good to solve this problem but
> cannot work in general since there is no guarantee that the PLT
> relocation happened before data relocation (in the case of lazy
> relocation the PLT relocation happens much later).

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.

> I don't have your patch handy but the test case you sent for the x86
> linker should fail with the above logic applied as well.

I don't have a patch yet.  I will make up an x86 testcase that will
test the ld.so problem even with the broken linker, and reinstall
shoggoth, and get working tools, and hopefully all this can happen
today :-).

-- 
- Geoffrey Keating <geoffk@cygnus.com>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]