diff options
author | Alan Modra <amodra@gmail.com> | 2015-04-07 22:23:21 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2015-04-07 23:22:11 +0930 |
commit | 87070c082fd5c23e9a0e7994ff9ea13f6faecb3e (patch) | |
tree | 597a6b184c8af91bd452733a0516257856580fb6 | |
parent | 0fad6e4b94e754e26e904bab074bf6c94d825711 (diff) | |
download | gdb-87070c082fd5c23e9a0e7994ff9ea13f6faecb3e.zip gdb-87070c082fd5c23e9a0e7994ff9ea13f6faecb3e.tar.gz gdb-87070c082fd5c23e9a0e7994ff9ea13f6faecb3e.tar.bz2 |
Modify get_reloc_section for targets that map .got.plt to .got
Fixes tic6x testsuite failures due to .rela.plt having a zero sh_info.
I considered passing link_info to get_reloc_section so we could
directly return the .got.plt output section, but we need the fallback
to name lookup anyway for objcopy.
bfd/
* elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being
mapped to output .got section.
ld/testsuite/
* ld-arm/tls-gdesc-nlazy.g: Adjust for readelf note.
* ld-tic6x/shlib-1.rd: Expect corrected .rela.plt sh_info.
* ld-tic6x/shlib-1b.rd: Likewise.
* ld-tic6x/shlib-1r.rd: Likewise.
* ld-tic6x/shlib-1rb.rd: Likewise.
* ld-tic6x/shlib-app-1.rd: Likewise.
* ld-tic6x/shlib-app-1b.rd: Likewise.
* ld-tic6x/shlib-app-1r.rd: Likewise.
* ld-tic6x/shlib-app-1rb.rd: Likewise.
* ld-tic6x/shlib-noindex.rd: Likewise.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf.c | 10 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/tls-gdesc-nlazy.g | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-1.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-1b.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-1r.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-1rb.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-app-1.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-app-1b.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-app-1r.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-app-1rb.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/shlib-noindex.rd | 2 |
13 files changed, 37 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4763585..192d9aa 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2015-04-07 Alan Modra <amodra@gmail.com> + * elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being + mapped to output .got section. + +2015-04-07 Alan Modra <amodra@gmail.com> + * elf32-ppc.c (struct ppc_elf_link_hash_entry): Add has_addr16_ha and has_addr16_lo. Make has_sda_refs a bitfield. (ppc_elf_check_relocs): Set new flags. @@ -3102,7 +3102,15 @@ _bfd_elf_get_reloc_section (asection *reloc_sec) abfd = reloc_sec->owner; if (get_elf_backend_data (abfd)->want_got_plt && strcmp (name, ".plt") == 0) - name = ".got.plt"; + { + /* .got.plt is a linker created input section. It may be mapped + to some other output section. Try two likely sections. */ + name = ".got.plt"; + reloc_sec = bfd_get_section_by_name (abfd, name); + if (reloc_sec != NULL) + return reloc_sec; + name = ".got"; + } reloc_sec = bfd_get_section_by_name (abfd, name); return reloc_sec; diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5036af1..49a74f7 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2015-04-07 Alan Modra <amodra@gmail.com> + + * ld-arm/tls-gdesc-nlazy.g: Adjust for readelf note. + * ld-tic6x/shlib-1.rd: Expect corrected .rela.plt sh_info. + * ld-tic6x/shlib-1b.rd: Likewise. + * ld-tic6x/shlib-1r.rd: Likewise. + * ld-tic6x/shlib-1rb.rd: Likewise. + * ld-tic6x/shlib-app-1.rd: Likewise. + * ld-tic6x/shlib-app-1b.rd: Likewise. + * ld-tic6x/shlib-app-1r.rd: Likewise. + * ld-tic6x/shlib-app-1rb.rd: Likewise. + * ld-tic6x/shlib-noindex.rd: Likewise. + 2015-04-06 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/compress.exp: Remove is_zlib_supported check. diff --git a/ld/testsuite/ld-arm/tls-gdesc-nlazy.g b/ld/testsuite/ld-arm/tls-gdesc-nlazy.g index 4b53a98..f36ed1d 100644 --- a/ld/testsuite/ld-arm/tls-gdesc-nlazy.g +++ b/ld/testsuite/ld-arm/tls-gdesc-nlazy.g @@ -1,4 +1,5 @@ Hex dump of section '.got': +#... 0x[0-9a-f]+ [0-9a-f]+ 00000000 00000000 00000000 ................ 0x[0-9a-f]+ 00000000 00000000 00000000 ............ diff --git a/ld/testsuite/ld-tic6x/shlib-1.rd b/ld/testsuite/ld-tic6x/shlib-1.rd index 5818326..3d253d2 100644 --- a/ld/testsuite/ld-tic6x/shlib-1.rd +++ b/ld/testsuite/ld-tic6x/shlib-1.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-1b.rd b/ld/testsuite/ld-tic6x/shlib-1b.rd index 5818326..3d253d2 100644 --- a/ld/testsuite/ld-tic6x/shlib-1b.rd +++ b/ld/testsuite/ld-tic6x/shlib-1b.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-1r.rd b/ld/testsuite/ld-tic6x/shlib-1r.rd index 5818326..3d253d2 100644 --- a/ld/testsuite/ld-tic6x/shlib-1r.rd +++ b/ld/testsuite/ld-tic6x/shlib-1r.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.rd b/ld/testsuite/ld-tic6x/shlib-1rb.rd index 5818326..3d253d2 100644 --- a/ld/testsuite/ld-tic6x/shlib-1rb.rd +++ b/ld/testsuite/ld-tic6x/shlib-1rb.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1.rd b/ld/testsuite/ld-tic6x/shlib-app-1.rd index db1c560..9c62d6b 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1.rd @@ -10,7 +10,7 @@ Section Headers: \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c AI 2 12 4 \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c AI 2 13 4 \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4 - \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 9 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 11 4 \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1b.rd b/ld/testsuite/ld-tic6x/shlib-app-1b.rd index 086f21a..8b5f5fa 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1b.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1b.rd @@ -10,7 +10,7 @@ Section Headers: \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c AI 2 12 4 \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c AI 2 13 4 \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4 - \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 9 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 11 4 \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1r.rd b/ld/testsuite/ld-tic6x/shlib-app-1r.rd index f09738c..a4737f5 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1r.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1r.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 0000810c 00110c 000018 0c AI 2 10 4 \[ 5\] \.rela\.bss RELA 00008124 001124 00000c 0c AI 2 12 4 \[ 6\] \.dynamic DYNAMIC 00008130 001130 0000b8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd index a49fc05..7d70d9e 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd @@ -9,7 +9,7 @@ Section Headers: \[ 4\] \.rela\.got RELA 00008110 001110 000018 0c AI 2 10 4 \[ 5\] \.rela\.bss RELA 00008128 001128 00000c 0c AI 2 12 4 \[ 6\] \.dynamic DYNAMIC 00008134 001134 0000b8 08 WA 3 0 4 - \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 8 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c AI 2 10 4 \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 diff --git a/ld/testsuite/ld-tic6x/shlib-noindex.rd b/ld/testsuite/ld-tic6x/shlib-noindex.rd index 62d237b..2a9389c 100644 --- a/ld/testsuite/ld-tic6x/shlib-noindex.rd +++ b/ld/testsuite/ld-tic6x/shlib-noindex.rd @@ -10,7 +10,7 @@ Section Headers: \[ 5\] \.rela\.got RELA 0000814c 00114c 000024 0c AI 2 11 4 \[ 6\] \.rela\.neardata RELA 00008170 001170 000018 0c AI 2 12 4 \[ 7\] \.dynamic DYNAMIC 00008188 001188 0000b0 08 WA 3 0 4 - \[ 8\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 9 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 000018 0c AI 2 11 4 \[ 9\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 \[10\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 \[11\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 |