OSDN Git Service

PR 7027
authorNick Clifton <nickc@redhat.com>
Wed, 19 Nov 2008 09:25:56 +0000 (09:25 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 19 Nov 2008 09:25:56 +0000 (09:25 +0000)
        * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
        against local symbols in 64-bit binaries as if they were WDISP30
        relocs.
        (_bfd_sparc_elf_relocate_section): Likewise.

bfd/ChangeLog
bfd/elfxx-sparc.c

index bc22555..dfbf47a 100644 (file)
@@ -1,3 +1,11 @@
+2008-11-19  Nick Clifton  <nickc@redhat.com>
+
+       PR 7027
+       * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
+       against local symbols in 64-bit binaries as if they were WDISP30
+       relocs.
+       (_bfd_sparc_elf_relocate_section): Likewise.
+
 2008-11-18  Catherine Moore  <clm@codesourcery.com>
 
        * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
index 7b81555..83d26b0 100644 (file)
@@ -1329,6 +1329,9 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
                    goto r_sparc_plt32;
                  break;
                }
+             /* PR 7027: We need similar behaviour for 64-bit binaries.  */
+             else if (r_type == R_SPARC_WPLT30)
+               break;
 
              /* It does not make sense to have a procedure linkage
                  table entry for a local symbol.  */
@@ -2760,6 +2763,9 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
              if (h == NULL)
                break;
            }
+         /* PR 7027: We need similar behaviour for 64-bit binaries.  */ 
+         else if (r_type == R_SPARC_WPLT30 && h == NULL)
+           break;
          else
            {
              BFD_ASSERT (h != NULL);