diff options
author | Alan Modra <amodra@gmail.com> | 2015-06-05 18:35:40 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2015-06-05 20:12:11 +0930 |
commit | f8b447819b3d65c3bea65dee860110aa198c081e (patch) | |
tree | 9d43b6357d2341e839d71ee5b6b3babf64366a62 /bfd/ChangeLog | |
parent | bdd2d2b7e6fbe90a07bd631cb599266fc6e12b5e (diff) | |
download | gdb-f8b447819b3d65c3bea65dee860110aa198c081e.zip gdb-f8b447819b3d65c3bea65dee860110aa198c081e.tar.gz gdb-f8b447819b3d65c3bea65dee860110aa198c081e.tar.bz2 |
ppc476 linker workaround shared lib fixes
When building a shared lib from non-PIC objects, we'll get dynamic
text relocations. These need to move with any insns we move.
Otherwise the dynamic reloc will modify the branch, resulting in
crashes and other unpleasant behaviour.
Also, ld -r --ppc476-workaround used with sufficiently aligned PIC
objects needs a fix for emitted REL16 relocs.
bfd/
* elf64-ppc.c (ppc_elf_relocate_section): Move dynamic text
relocs with insns moved by --ppc476-workaround. Correct
output of REL16 relocs.
ld/testsuite/
* ld-powerpc/ppc476-shared.s,
* ld-powerpc/ppc476-shared.lnk,
* ld-powerpc/ppc476-shared.d,
* ld-powerpc/ppc476-shared2.d: New tests.
* ld-powerpc/powerpc.exp: Run them.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4001dce..d7ba09b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-06-05 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc_elf_relocate_section): Move dynamic text + relocs with insns moved by --ppc476-workaround. Correct + output of REL16 relocs. + 2015-06-01 Jiong Wang <jiong.wang@arm.com> * elfnn-aarch64.c (aarch64_reloc_got_type): Support |