OSDN Git Service

* elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
authorAlan Modra <amodra@bigpond.net.au>
Fri, 19 Jun 2009 03:30:45 +0000 (03:30 +0000)
committerAlan Modra <amodra@bigpond.net.au>
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 612256a..f959b45 100644 (file)
@@ -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.
index 01e4359..7aafbeb 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.  */
          {