summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2005-03-28 15:32:58 +0000
committerDaniel Jacobowitz <drow@false.org>2005-03-28 15:32:58 +0000
commite3f7d989e3eebc73e140b38b9ddc954b55b95b46 (patch)
treeb18bc9923b906c43eb3ac4c558fd40dbd40ed20d
parent0721ba30f5db2dbd00260529517cc483fb3da4c0 (diff)
downloadbinutils-gdb-e3f7d989e3eebc73e140b38b9ddc954b55b95b46.tar.gz
* elf32-arm.c (elf32_arm_check_relocs): Increment count for all
relocation types. Don't count relocations which will use a PLT.
-rw-r--r--ChangeLog.csl5
-rw-r--r--bfd/elf32-arm.c19
2 files changed, 9 insertions, 15 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index daecaa72846..42be2bf0e8e 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,8 @@
+2005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf32-arm.c (elf32_arm_check_relocs): Increment count for all
+ relocation types. Don't count relocations which will use a PLT.
+
2005-03-23 Jim Blandy <jimb@redhat.com>
* config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 63452ca57fb..2c88fe4c879 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -4096,18 +4096,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
relocs_copied field of the hash table entry. */
if ((info->shared || htab->root.is_relocatable_executable)
&& (sec->flags & SEC_ALLOC) != 0
- && ((r_type != R_ARM_PC24
- && r_type != R_ARM_PLT32
-#ifndef OLD_ARM_ABI
- && r_type != R_ARM_CALL
- && r_type != R_ARM_JUMP24
- && r_type != R_ARM_PREL31
-#endif
- && r_type != R_ARM_REL32
- && r_type != R_ARM_THM_PC22)
- || (h != NULL
- && (! info->symbolic
- || !h->def_regular))))
+ && (r_type == R_ARM_ABS32
+ || (h != NULL && ! h->needs_plt
+ && (! info->symbolic || ! h->def_regular))))
{
struct elf32_arm_relocs_copied *p, **head;
@@ -4187,9 +4178,7 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
p->count = 0;
}
- if (r_type == R_ARM_ABS32
- || r_type == R_ARM_REL32)
- p->count += 1;
+ p->count += 1;
}
break;