2007-07-04 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 5 Jul 2007 02:50:02 +0000 (02:50 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 5 Jul 2007 02:50:02 +0000 (02:50 +0000)
* peicode.h (pe_bfd_object_p): Don't check PE vs. EFI target
if arch is unknown.

bfd/ChangeLog
bfd/peicode.h

index 7d88606..57e5eb5 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * peicode.h (pe_bfd_object_p): Don't check PE vs. EFI target
+       if arch is unknown.
+
 2007-07-04  Nick Clifton  <nickc@redhat.com>
 
        Import this patch from an internal tree:
index a6140d7..a64ac1d 100644 (file)
@@ -1342,6 +1342,10 @@ pe_bfd_object_p (bfd * abfd)
       else
        arch = pe_arch (bfd_target_pei_arch (abfd->xvec));
 
+      /* Don't check PE vs. EFI if arch is unknown.  */
+      if (arch == arch_type_unknown)
+       return target;
+
       for (target_ptr = bfd_target_vector; *target_ptr != NULL;
           target_ptr++)
        {
@@ -1355,13 +1359,13 @@ pe_bfd_object_p (bfd * abfd)
              if (pe_arch (bfd_target_efi_arch (*target_ptr)) != arch)
                continue;
 
-               if (efi)
-                 {
-                   /* TARGET_PTR is an EFI backend.  Don't match
-                      TARGET with a EFI file.  */
-                   bfd_set_error (bfd_error_wrong_format);
-                   return NULL;
-                 }
+             if (efi)
+               {
+                 /* TARGET_PTR is an EFI backend.  Don't match
+                    TARGET with a EFI file.  */
+                 bfd_set_error (bfd_error_wrong_format);
+                 return NULL;
+               }
            }
          else if (bfd_target_pei_p (*target_ptr))
            {
@@ -1369,13 +1373,13 @@ pe_bfd_object_p (bfd * abfd)
              if (pe_arch (bfd_target_pei_arch (*target_ptr)) != arch)
                continue;
 
-               if (!efi)
-                 {
-                   /* TARGET_PTR is a PE backend.  Don't match
-                      TARGET with a PE file.  */
-                   bfd_set_error (bfd_error_wrong_format);
-                   return NULL;
-                 }
+             if (!efi)
+               {
+                 /* TARGET_PTR is a PE backend.  Don't match
+                    TARGET with a PE file.  */
+                 bfd_set_error (bfd_error_wrong_format);
+                 return NULL;
+               }
            }
        }
     }