The content of reserved entries of the .got.plt section is target specific.
In particular, on x86_64, the zero entry holds the address of the .dynamic section,
but on AArch64 the same info is stored in the zero entry of the .got section.
Paths
| Differential D14703
[ELF2] Remove target specific code from GotPltSection. ClosedPublic Authored by ikudrin on Nov 16 2015, 6:57 AM.
Details Summary The content of reserved entries of the .got.plt section is target specific. In particular, on x86_64, the zero entry holds the address of the .dynamic section,
Diff Detail
Event Timelineikudrin updated this object. Comment Actions Patch looks fine for my eye, but have a question: This revision is now accepted and ready to land.Nov 16 2015, 9:09 AM Comment Actions
I haven't done a deep investigation, but at least gold has the following comment in its aarch64.cc: // Layout of .got and .got.plt sections. // .got[0] &_DYNAMIC <-_GLOBAL_OFFSET_TABLE_ // ... // .gotplt[0] reserved for ld.so (&linkmap) <--DT_PLTGOT // .gotplt[1] reserved for ld.so (resolver) // .gotplt[2] reserved Closed by commit rL253239: [ELF2] Remove target specific code from GotPltSection. (authored by ikudrin). · Explain WhyNov 16 2015, 9:46 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 40308 lld/trunk/ELF/OutputSections.cpp
lld/trunk/ELF/Target.h
lld/trunk/ELF/Target.cpp
|