aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-12-01 15:50:58 +0000
committerNick Clifton <nickc@redhat.com>2011-12-01 15:50:58 +0000
commit810e69868440cdc8f2052c90fc30c3be71075899 (patch)
tree67a06837815ae6655dcf7122cd8468e5e802db28
parent87f1617a4f71347db8f9bd7f257f729bc08f2d31 (diff)
downloadfsf-binutils-gdb-810e69868440cdc8f2052c90fc30c3be71075899.zip
fsf-binutils-gdb-810e69868440cdc8f2052c90fc30c3be71075899.tar.gz
fsf-binutils-gdb-810e69868440cdc8f2052c90fc30c3be71075899.tar.bz2
* 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.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-m68k.c8
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