diff options
author | Alan Modra <amodra@gmail.com> | 2009-06-19 03:30:45 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2009-06-19 03:30:45 +0000 |
commit | 6d78d0b92e4cb8284544af89e9ca3452e46a0bd1 (patch) | |
tree | 3e7bcb574fac5fc88da4f763c880f418b38706c9 /bfd | |
parent | 3ec01793a5270f58f4cdb69e6713e9202f61450f (diff) | |
download | gdb-6d78d0b92e4cb8284544af89e9ca3452e46a0bd1.zip gdb-6d78d0b92e4cb8284544af89e9ca3452e46a0bd1.tar.gz gdb-6d78d0b92e4cb8284544af89e9ca3452e46a0bd1.tar.bz2 |
* elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
R_PPC_PLTREL24 relocs.
(ppc_elf_relocate_section): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 612256a..f959b45 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2009-06-19 Alan Modra <amodra@bigpond.net.au> + * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for + R_PPC_PLTREL24 relocs. + (ppc_elf_relocate_section): Likewise. + +2009-06-19 Alan Modra <amodra@bigpond.net.au> + * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than pointer to sym hash. Update all uses. (update_plt_info): Likewise. Don't check addend here. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 01e4359..7aafbeb 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -3570,8 +3570,11 @@ ppc_elf_check_relocs (bfd *abfd, h->non_got_ref = TRUE; break; - case R_PPC_PLT32: case R_PPC_PLTREL24: + if (h == NULL) + break; + /* Fall through */ + case R_PPC_PLT32: case R_PPC_PLTREL32: case R_PPC_PLT16_LO: case R_PPC_PLT16_HI: @@ -7210,6 +7213,8 @@ ppc_elf_relocate_section (bfd *output_bfd, break; case R_PPC_PLTREL24: + if (h == NULL) + break; /* Relocation is to the entry for this symbol in the procedure linkage table. */ { |