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.
This commit is contained in:
Alan Modra 2015-04-07 22:23:21 +09:30
parent 0fad6e4b94
commit 87070c082f
13 changed files with 37 additions and 10 deletions

View File

@ -1,3 +1,8 @@
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

View File

@ -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;

View File

@ -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.

View File

@ -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 ............

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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