diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-06-24 04:00:19 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-06-24 04:00:31 -0700 |
commit | c679ec98a1296d8da3b5920a9058ba14b47ca3a4 (patch) | |
tree | 1669a20b5d12c0e4cb2561dd58f25b06f5b71fbb /ld | |
parent | 5376d47f66d0e4e07b3d42cb62ad07327cad4292 (diff) | |
download | gdb-c679ec98a1296d8da3b5920a9058ba14b47ca3a4.zip gdb-c679ec98a1296d8da3b5920a9058ba14b47ca3a4.tar.gz gdb-c679ec98a1296d8da3b5920a9058ba14b47ca3a4.tar.bz2 |
cris: Don't generate unnecessary dynamic tags
Dynamic tags, DT_JMPREL, PLTREL and PLTRELSZ, are needed only if there
are relocation entries for PLT. Don't generate them if there are no
relocation entries for PLT.
bfd/
PR ld/26083
* elf32-cris.c (elf_cris_size_dynamic_sections): Call
_bfd_elf_add_dynamic_tags.
ld/
PR ld/26083
* testsuite/ld-cris/libdso-15b.d: Updated.
* testsuite/ld-cris/libdso-1c.d: Likewise.
* testsuite/ld-cris/libdso-1d.d: Likewise.
* testsuite/ld-cris/libdso-15c.d: New file.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/libdso-15b.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/libdso-15c.d | 22 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/libdso-1c.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/libdso-1d.d | 10 |
5 files changed, 41 insertions, 11 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index fd0b989..47500a1 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,13 @@ 2020-06-24 H.J. Lu <hongjiu.lu@intel.com> + PR ld/26083 + * testsuite/ld-cris/libdso-15b.d: Updated. + * testsuite/ld-cris/libdso-1c.d: Likewise. + * testsuite/ld-cris/libdso-1d.d: Likewise. + * testsuite/ld-cris/libdso-15c.d: New file. + +2020-06-24 H.J. Lu <hongjiu.lu@intel.com> + PR ld/26163 * ldexp.c (exp_fold_tree_1): Set non_ir_ref_regular on the source for assignment. diff --git a/ld/testsuite/ld-cris/libdso-15b.d b/ld/testsuite/ld-cris/libdso-15b.d index 4e2bddb..39e001a 100644 --- a/ld/testsuite/ld-cris/libdso-15b.d +++ b/ld/testsuite/ld-cris/libdso-15b.d @@ -22,7 +22,7 @@ DYNAMIC SYMBOL TABLE: 0+[ ]+DF \*UND\*[ ]+0+ TST3[ ]+expfn2 #... Contents of section .rela.dyn: - 017c a4220000 0a040000 00000000 a8220000 .* + 017c 8c220000 0a040000 00000000 90220000 .* 018c 0a050000 00000000 .* Contents of section .plt: 0194 fce17e7e 0401307a 08013009 00000000 .* @@ -34,5 +34,5 @@ Contents of section .text: 01e0 00006fae d4ffffff .* #... Contents of section .got: - 2298 e8210000 00000000 00000000 00000000 .* - 22a8 00000000 .* + 2280 e8210000 00000000 00000000 00000000 .* + 2290 00000000 .* diff --git a/ld/testsuite/ld-cris/libdso-15c.d b/ld/testsuite/ld-cris/libdso-15c.d new file mode 100644 index 0000000..b035990 --- /dev/null +++ b/ld/testsuite/ld-cris/libdso-15c.d @@ -0,0 +1,22 @@ +#source: expdref2.s +#as: --pic --no-underscore --em=criself +#ld: --shared -m crislinux --hash-style=sysv +#ld_after_inputfiles: tmpdir/libdso-15.so +#readelf: -d + +Dynamic section at offset 0x1e8 contains 14 entries: + Tag Type Name/Value + 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libdso-15.so\] + 0x00000004 \(HASH\) 0x94 + 0x00000005 \(STRTAB\) 0x120 + 0x00000006 \(SYMTAB\) 0xc0 + 0x0000000a \(STRSZ\) 45 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000003 \(PLTGOT\) 0x2280 + 0x00000007 \(RELA\) 0x17c + 0x00000008 \(RELASZ\) 24 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x6ffffffe \(VERNEED\) 0x15c + 0x6fffffff \(VERNEEDNUM\) 1 + 0x6ffffff0 \(VERSYM\) 0x14e + 0x00000000 \(NULL\) 0x0 diff --git a/ld/testsuite/ld-cris/libdso-1c.d b/ld/testsuite/ld-cris/libdso-1c.d index f02dc5e..2b9b13b 100644 --- a/ld/testsuite/ld-cris/libdso-1c.d +++ b/ld/testsuite/ld-cris/libdso-1c.d @@ -19,7 +19,7 @@ DYNAMIC SYMBOL TABLE: 0+[ ]+DF \*UND\* 0+[ ]+TST2[ ]+expfn #... Contents of section .rela.dyn: - 0140 68220000 0a020000 00000000 6c220000 .* + 0140 50220000 0a020000 00000000 54220000 .* 0150 0a030000 00000000 .* Contents of section .plt: 0158 fce17e7e 0401307a 08013009 00000000 .* @@ -31,5 +31,5 @@ Contents of section .text: 01a4 00006fae d4ffffff .* #... Contents of section .got: - 225c ac210000 00000000 00000000 00000000 .* - 226c 00000000 .* + 2244 ac210000 00000000 00000000 00000000 .* + 2254 00000000 .* diff --git a/ld/testsuite/ld-cris/libdso-1d.d b/ld/testsuite/ld-cris/libdso-1d.d index 06e72fc..83a4337 100644 --- a/ld/testsuite/ld-cris/libdso-1d.d +++ b/ld/testsuite/ld-cris/libdso-1d.d @@ -14,10 +14,10 @@ DYNAMIC SYMBOL TABLE: #... 0+1a6 w DF .text 0+2 expfn -0+2254 w DO .data 0+4 expobj +0+223c w DO .data 0+4 expobj #... Contents of section .rela.dyn: - 0138 4c220000 0a020000 00000000 50220000 .* + 0138 34220000 0a020000 00000000 38220000 .* 0148 0a030000 00000000 .* Contents of section .plt: 0150 fce17e7e 0401307a 08013009 00000000 .* @@ -30,7 +30,7 @@ Contents of section .text: Contents of section .dynamic: #... Contents of section .got: - 2240 a8210000 00000000 00000000 00000000 .* - 2250 00000000 .* + 2228 a8210000 00000000 00000000 00000000 .* + 2238 00000000 .* Contents of section .data: - 2254 00000000 .* + 223c 00000000 .* |