From: Alan Modra Date: Wed, 9 Dec 2009 01:26:03 +0000 (+0000) Subject: PR ld/11012 X-Git-Tag: cgen-snapshot-20100101~93 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=829da89821d7f0b7663b8314128fa06878d228e0;p=external%2Fbinutils.git 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. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 1c8994c..0abce2d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2009-12-09 Alan Modra + + 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. + 2009-12-04 Jie Zhang * ld.texinfo: Make it clear that --nmagic disables linking 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) } diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 886f578..5378afa 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -311,6 +311,7 @@ else COMBRELOCCAT="cat > $COMBRELOC" fi eval $COMBRELOCCAT <