-/* Copyright (C) 1991, 92, 93, 94, 95, 98, 1999 Free Software Foundation, Inc.
+/* Linker file opening and searching.
+ Copyright (C) 1991, 92, 93, 94, 95, 98, 99, 2000
+ Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
static search_arch_type *search_arch_head;
static search_arch_type **search_arch_tail_ptr = &search_arch_head;
-static boolean ldfile_open_file_search
- PARAMS ((const char *arch, lang_input_statement_type *,
- const char *lib, const char *suffix));
static FILE *try_open PARAMS ((const char *name, const char *exten));
void
else
check = entry->the_bfd;
- if (! bfd_check_format (check, bfd_object))
- return true;
- if (bfd_arch_get_compatible (check, output_bfd) == NULL)
+ if (check != NULL)
{
- einfo (_("%P: skipping incompatible %s when searching for %s"),
- attempt, entry->local_sym_name);
- bfd_close (entry->the_bfd);
- entry->the_bfd = NULL;
- return false;
+ if (! bfd_check_format (check, bfd_object))
+ return true;
+ if (bfd_arch_get_compatible (check, output_bfd) == NULL)
+ {
+ einfo (_("%P: skipping incompatible %s when searching for %s"),
+ attempt, entry->local_sym_name);
+ bfd_close (entry->the_bfd);
+ entry->the_bfd = NULL;
+ return false;
+ }
}
}
/* Search for and open the file specified by ENTRY. If it is an
archive, use ARCH, LIB and SUFFIX to modify the file name. */
-static boolean
+boolean
ldfile_open_file_search (arch, entry, lib, suffix)
const char *arch;
lang_input_statement_type *entry;
if (ldfile_open_file_search (arch->name, entry, ":lib", ".a"))
return;
#endif
+ if (ldemul_find_potential_libraries (arch->name, entry))
+ return;
}
einfo (_("%F%P: cannot find %s\n"), entry->local_sym_name);
}