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: Prelinking of shared libraries


Waldo Bastian <bastian@kde.org> writes:

|> How does this work? .rel.got only contains  R_386_GLOB_DATA relocations and 
|> .rel.plt contains only R_386_JUMP_SLOT relocations. But the .plt section is 
|> marked readonly... So the entries of .rel.got and .rel.plt both end up 
|> modifiying .got? The numbers seem to add up...

The PLT entry jumps through the corresponding GOT entry, which is
initialized by R_386_JUMP_SLOT to point to the dynamic resolver (lazy) or
the resolved function (non-lazy).  The dynamic resolver just modifies the
GOT entry.  On architectures where the PLT is writable the dynamic
resolver modifies the PLT entry itself, and no additional GOT entry is
created.

Andreas.

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5


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