diff options
Diffstat (limited to 'ld/ldfile.c')
-rw-r--r-- | ld/ldfile.c | 8 |
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); |