* elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
authorAlan Modra <amodra@gmail.com>
Fri, 19 Jun 2009 03:30:45 +0000 (03:30 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 19 Jun 2009 03:30:45 +0000 (03:30 +0000)
R_PPC_PLTREL24 relocs.
(ppc_elf_relocate_section): Likewise.

bfd/ChangeLog
bfd/elf32-ppc.c

index 612256a31720c98c95776b57bbe2f620dc1fa48f..f959b450f552f94c41f4f7aa8d4516a78ae68082 100644 (file)
@@ -1,3 +1,9 @@
+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
index 01e4359f20d7072eda46e3559ec8c1654d3a4799..7aafbebf843823fd17953eaec8bacc0893f97e52 100644 (file)
@@ -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.  */
          {