diff options
author | Florian Weimer <fweimer@redhat.com> | 2022-10-27 11:36:44 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2022-10-27 11:36:44 +0200 |
commit | 77db67c56b24bba3c735aac34a6f796c909b68c0 (patch) | |
tree | 43d93a5ec1bba4687e2727e75c690faf77f5cc8f /elf/dl-libc_freeres.c | |
parent | 11306df777e4355bb94f3581fcd2207a525d47dd (diff) | |
download | glibc-77db67c56b24bba3c735aac34a6f796c909b68c0.tar.gz glibc-77db67c56b24bba3c735aac34a6f796c909b68c0.tar.xz glibc-77db67c56b24bba3c735aac34a6f796c909b68c0.zip |
scripts/localplt.awk: Handle DT_JMPREL with empty PLT (for C-SKY)
On csky-linux-gnuabiv2, binutils 2.33 produces a DT_JMPREL entry for the dynamic loader if it does not contain any PLT relocations: Dynamic section at offset 0x1df48 contains 19 entries: Tag Type Name/Value 0x0000000e (SONAME) Library soname: [ld-linux-cskyv2-hf.so.1] 0x00000004 (HASH) 0xd4 0x6ffffef5 (GNU_HASH) 0x1a8 0x00000005 (STRTAB) 0x4ac 0x00000006 (SYMTAB) 0x28c 0x0000000a (STRSZ) 527 (bytes) 0x0000000b (SYMENT) 16 (bytes) 0x00000003 (PLTGOT) 0x1f000 0x00000002 (PLTRELSZ) 0 (bytes) 0x00000014 (PLTREL) RELA 0x00000017 (JMPREL) 0xaa4 0x00000007 (RELA) 0x75c 0x00000008 (RELASZ) 840 (bytes) 0x00000009 (RELAENT) 12 (bytes) 0x6ffffffc (VERDEF) 0x700 0x6ffffffd (VERDEFNUM) 3 0x6ffffff0 (VERSYM) 0x6bc 0x6ffffff9 (RELACOUNT) 68 0x00000000 (NULL) 0x0 This confuses the script: Unexpected output from check-localplt: …/elf/ld.so.jmprel: *** DT_JMPREL does not match any section's address This commit changes the script to record the DT_PLTRELSZ value and reject DT_JMPREL values not a section boundary only if DT_PLTRELSZ is present with a non-zero value. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'elf/dl-libc_freeres.c')
0 files changed, 0 insertions, 0 deletions