From 71a976dd82f4a544374e4f40b9a1d6ec1f5525ad Mon Sep 17 00:00:00 2001
From: Daniel Jacobowitz <drow@false.org>
Date: Tue, 29 Mar 2005 16:39:51 +0000
Subject: [PATCH] 	* elf32-arm.c (elf32_arm_check_relocs): Increment
 count for all 	relocation types.  Don't count relocations which will use a
 PLT.

---
 bfd/ChangeLog   |  5 +++++
 bfd/elf32-arm.c | 19 ++++---------------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ee28ddbff3e..c2629c585eb 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-29  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-29  Joel Brobecker  <brobecker@gnat.com>
 
 	* elf.c (elfcore_grok_nto_status): Print tid as long.
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index cfa0b116cff..2e1f1d35a85 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;