aboutsummaryrefslogtreecommitdiff
path: root/ld/ldfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ldfile.c')
-rw-r--r--ld/ldfile.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 8d8310a..7258bb1 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -132,7 +132,13 @@ ldfile_try_open_bfd (attempt, entry)
{
if (! bfd_check_format (check, bfd_object))
return true;
- if (bfd_arch_get_compatible (check, output_bfd) == NULL)
+
+ if ((bfd_arch_get_compatible (check, output_bfd) == NULL)
+ /* XCOFF archives can have 32 and 64 bit objects */
+ && ! (bfd_get_flavour (check) == bfd_target_xcoff_flavour
+ && bfd_get_flavour (output_bfd) ==
+ bfd_target_xcoff_flavour
+ && bfd_check_format (entry->the_bfd, bfd_archive)))
{
einfo (_("%P: skipping incompatible %s when searching for %s\n"),
attempt, entry->local_sym_name);