This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: PR ld/12842: Linker is broken


Hi,

I am checking in this patch to revert the last change on elf_object_p.

H.J.
---
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 30b34b6..e417b82 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/12842
+	* elfcode.h (elf_object_p): Revert the last change.
+
 2011-06-04  Alan Modra  <amodra@gmail.com>
 
 	* archures.c (bfd_arch_get_compatible): If one arch is unknown,
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index fdfeee9..d8833df 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -595,27 +595,26 @@ elf_object_p (bfd *abfd)
 
       /* This is the generic ELF target.  Let it match any ELF target
 	 for which we do not have a specific backend.  */
-      if (abfd->target_defaulted)
-	for (target_ptr = bfd_target_vector; *target_ptr != NULL; target_ptr++)
-	  {
-	    const struct elf_backend_data *back;
-
-	    if ((*target_ptr)->flavour != bfd_target_elf_flavour)
-	      continue;
-	    back = xvec_get_elf_backend_data (*target_ptr);
-	    if (back->s->arch_size != ARCH_SIZE)
-	      continue;
-	    if (back->elf_machine_code == i_ehdrp->e_machine
-		|| (back->elf_machine_alt1 != 0
-		    && back->elf_machine_alt1 == i_ehdrp->e_machine)
-		|| (back->elf_machine_alt2 != 0
-		    && back->elf_machine_alt2 == i_ehdrp->e_machine))
-	      {
-		/* target_ptr is an ELF backend which matches this
-		   object file, so reject the generic ELF target.  */
-		goto got_wrong_format_error;
-	      }
-	  }
+      for (target_ptr = bfd_target_vector; *target_ptr != NULL; target_ptr++)
+	{
+	  const struct elf_backend_data *back;
+
+	  if ((*target_ptr)->flavour != bfd_target_elf_flavour)
+	    continue;
+	  back = xvec_get_elf_backend_data (*target_ptr);
+	  if (back->s->arch_size != ARCH_SIZE)
+	    continue;
+	  if (back->elf_machine_code == i_ehdrp->e_machine
+	      || (back->elf_machine_alt1 != 0
+		  && back->elf_machine_alt1 == i_ehdrp->e_machine)
+	      || (back->elf_machine_alt2 != 0
+		  && back->elf_machine_alt2 == i_ehdrp->e_machine))
+	    {
+	      /* target_ptr is an ELF backend which matches this
+		 object file, so reject the generic ELF target.  */
+	      goto got_wrong_format_error;
+	    }
+	}
     }
 
   if (i_ehdrp->e_type == ET_EXEC)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]