bfd_object that it sets the bfd's arch and mach, which
will be needed when and if we want to bfd_create a new
one using this one as a template. */
- if (bfd_check_format (entry->the_bfd, bfd_object))
+ if (bfd_check_format (entry->the_bfd, bfd_object)
+ && plugin_active_plugins_p ())
{
int fd = open (attempt, O_RDONLY | O_BINARY);
if (fd >= 0)
file.handle = plugin_get_ir_dummy_bfd (attempt, entry->the_bfd);
if (plugin_call_claim_file (&file, &claimed))
einfo (_("%P%F: %s: plugin reported error claiming file\n"),
- plugin_error_plugin ());
+ plugin_error_plugin ());
+ /* fd belongs to us, not the plugin; but we don't need it. */
+ close (fd);
if (claimed)
{
/* Discard the real file's BFD and substitute the dummy one. */
}
else
{
- /* If plugin didn't claim the file, we don't need the fd or the
- dummy bfd. Can't avoid speculatively creating it, alas. */
+ /* If plugin didn't claim the file, we don't need the dummy
+ bfd. Can't avoid speculatively creating it, alas. */
bfd_close_all_done (file.handle);
- close (fd);
entry->claimed = FALSE;
}
}
/* If this is not an archive, try to open it in the current
directory first. */
- if (! entry->is_archive)
+ if (! entry->maybe_archive)
{
if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
{
}
}
- if (entry->is_archive)
+ if (entry->maybe_archive)
string = concat (search->name, slash, lib, entry->filename,
arch, suffix, (const char *) NULL);
else
if (ldfile_try_open_bfd (entry->filename, entry))
return;
- if (strcmp (entry->filename, entry->local_sym_name) != 0)
+ if (filename_cmp (entry->filename, entry->local_sym_name) != 0)
einfo (_("%P: cannot find %s (%s): %E\n"),
entry->filename, entry->local_sym_name);
else