summaryrefslogtreecommitdiff
path: root/bfd/peicode.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/peicode.h')
-rw-r--r--bfd/peicode.h32
1 files changed, 18 insertions, 14 deletions
diff --git a/bfd/peicode.h b/bfd/peicode.h
index a6140d7bbe..a64ac1de7d 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -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;
+ }
}
}
}