* Modify get_reloc_section for targets that map .got.plt to .got
@ 2015-04-07 13:54 Alan Modra
0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2015-04-07 13:54 UTC (permalink / raw)
To: binutils
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.
diff --git a/bfd/elf.c b/bfd/elf.c
index bb5f1c6..5fad4f1 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -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/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
--
Alan Modra
Australia Development Lab, IBM
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-04-07 13:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-07 13:54 Modify get_reloc_section for targets that map .got.plt to .got Alan Modra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).