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!!!


Geoff Keating <geoffk@cygnus.com> writes:

> Actually, weak symbols don't work at all in executables on x86,

Yes, the linker simply drops the relocations.  Note that this is the
perfectly correct behavior unless you specify -rdynamic.  But even
with -rdynamic the relocations are not there.

> which is probably why x86 doesn't see this problem.

Could be.  But this hack to add these additional tests in ld.so is
still not correct.  I must say I still don't understand what the
actual problem is.  Why do we see a crash?  If the symbol is available
the GLOB_DAT relocation returns zero and the function shouldn't be
called at all.  Since you see a crash there must be a definition and
the PLT usage fails (at least I think this is was fails).  But where
does the PLT address point to?  Zero?  If yes, why are the GLOB and
PLT relocation leading to different results?

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

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