diff options
author | Fangrui Song <maskray@google.com> | 2022-04-25 16:50:00 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2022-04-25 16:50:00 -0700 |
commit | da683b1f1037bf63b0c42f79a8a46f58670b2fed (patch) | |
tree | 9089d992c32c7b6d3a462cd32d76a02a8b41e8af /time/tst-y2039.c | |
parent | d3c732cb4383d02e5d3099d87766e5853acf9ff8 (diff) | |
download | glibc-da683b1f1037bf63b0c42f79a8a46f58670b2fed.zip glibc-da683b1f1037bf63b0c42f79a8a46f58670b2fed.tar.gz glibc-da683b1f1037bf63b0c42f79a8a46f58670b2fed.tar.bz2 |
elf: Support DT_RELR relative relocation format
Adapted from
https://sourceware.org/pipermail/libc-alpha/2022-April/138085.html
([PATCH v11 0/7] Support DT_RELR relative relocation format),
which is expected to be included in glibc 2.36.
glibc 2.35 has a fair amount of rtld changes to avoid nested functions
(https://sourceware.org/PR27220). This patch is carefully crafted to
make the minimal changes.
Notebly, this commit
* works around b/208156916 by not bumping DT_NUM. DT_RELR and DT_RELRSZ
take the l_info slots at DT_VERSYM+1 and DT_VERSYM+2.
* avoids changes to include/link.h
* removes the time travel compatibility check (error if DT_RELR is used
without GLIBC_ABI_DT_RELR version need). This needs link.h change and
the detected case cannot happen if we correctly use
-Wl,-z,pack-relative-relocs.
Diffstat (limited to 'time/tst-y2039.c')
0 files changed, 0 insertions, 0 deletions