OSDN Git Service

* elf32-m68k.c (elf_m68k_check_relocs) <R_68K_8, R68K_16, R_68K_32>: For
authornickc <nickc>
Thu, 1 Dec 2011 15:50:56 +0000 (15:50 +0000)
committernickc <nickc>
Thu, 1 Dec 2011 15:50:56 +0000 (15:50 +0000)
non-SEC_ALLOC sections break before GOT and PLT accounting.

bfd/ChangeLog
bfd/elf32-m68k.c

index 78b1a95..22270f5 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-01  Mikael Pettersson  <mikpe@it.uu.se>
+
+       * elf32-m68k.c (elf_m68k_check_relocs) <R_68K_8, R68K_16, R_68K_32>: For
+       non-SEC_ALLOC sections break before GOT and PLT accounting.
+
 2011-12-01  Hans-Peter Nilsson  <hp@axis.com>
 
        * elf32-cris.c (cris_elf_check_relocs) <plt accounting for
index 8c93548..bd660e9 100644 (file)
@@ -2816,6 +2816,11 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
        case R_68K_8:
        case R_68K_16:
        case R_68K_32:
+         /* We don't need to handle relocs into sections not going into
+            the "real" output.  */
+         if ((sec->flags & SEC_ALLOC) == 0)
+             break;
+
          if (h != NULL)
            {
              /* Make sure a plt entry is created for this symbol if it
@@ -2829,8 +2834,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
 
          /* If we are creating a shared library, we need to copy the
             reloc into the shared library.  */
-         if (info->shared
-             && (sec->flags & SEC_ALLOC) != 0)
+         if (info->shared)
            {
              /* When creating a shared object, we must copy these
                 reloc types into the output file.  We create a reloc