diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-m68k.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 78b1a95..22270f5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index 8c93548..bd660e9 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -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 |