aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2009-12-09 01:26:03 +0000
committerAlan Modra <amodra@gmail.com>2009-12-09 01:26:03 +0000
commit829da89821d7f0b7663b8314128fa06878d228e0 (patch)
treeb25d4beb7236a7cb0eae14b9aa729c06f1522cec /ld/emulparams
parent76c239510fded6592d2295294c2be03e497f2df7 (diff)
downloadgdb-829da89821d7f0b7663b8314128fa06878d228e0.zip
gdb-829da89821d7f0b7663b8314128fa06878d228e0.tar.gz
gdb-829da89821d7f0b7663b8314128fa06878d228e0.tar.bz2
PR ld/11012
* emulparams/elf64ppc.sh (OTHER_GOT_RELOC_SECTIONS): Move .rela.opd .. (INITIAL_RELOC_SECTIONS): .. to here. New define. * scripttempl/elf.sc: Expand INITIAL_RELOC_SECTIONS.
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf64ppc.sh4
1 files changed, 3 insertions, 1 deletions
diff --git a/ld/emulparams/elf64ppc.sh b/ld/emulparams/elf64ppc.sh
index b9631b6..c9337ea 100644
--- a/ld/emulparams/elf64ppc.sh
+++ b/ld/emulparams/elf64ppc.sh
@@ -28,9 +28,11 @@ else
.got 0 : { *(.got) }
.toc 0 : { *(.toc) }"
fi
+# Put .opd relocs first so ld.so will process them before any ifunc relocs.
+INITIAL_RELOC_SECTIONS="
+ .rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
OTHER_GOT_RELOC_SECTIONS="
.rela.toc ${RELOCATING-0} : { *(.rela.toc) }
- .rela.opd ${RELOCATING-0} : { *(.rela.opd) }
.rela.branch_lt ${RELOCATING-0} : { *(.rela.branch_lt) }"
OTHER_READWRITE_SECTIONS="
.toc1 ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }