You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
--- binutils.orig/bfd/plugin.c 2022-01-19 16:17:33.290999966 +0000
|
|
+++ binutils-2.30/bfd/plugin.c 2022-01-19 16:23:33.704473426 +0000
|
|
@@ -349,7 +349,7 @@ try_claim (bfd *abfd)
|
|
}
|
|
|
|
static int
|
|
-try_load_plugin (const char *pname, bfd *abfd, int *has_plugin_p)
|
|
+try_load_plugin (const char *pname, bfd *abfd, int *has_plugin_p, bfd_boolean build_list_p)
|
|
{
|
|
void *plugin_handle;
|
|
struct ld_plugin_tv tv[4];
|
|
@@ -362,7 +362,11 @@ try_load_plugin (const char *pname, bfd
|
|
plugin_handle = dlopen (pname, RTLD_NOW);
|
|
if (!plugin_handle)
|
|
{
|
|
- _bfd_error_handler ("%s\n", dlerror ());
|
|
+ /* If we are building a list of viable plugins, then
|
|
+ we do not bother the user with the details of any
|
|
+ plugins that cannot be loaded. */
|
|
+ if (! build_list_p)
|
|
+ _bfd_error_handler ("%s\n", dlerror ());
|
|
return 0;
|
|
}
|
|
|
|
@@ -477,7 +481,7 @@ load_plugin (bfd *abfd)
|
|
return found;
|
|
|
|
if (plugin_name)
|
|
- return try_load_plugin (plugin_name, abfd, &has_plugin);
|
|
+ return try_load_plugin (plugin_name, abfd, &has_plugin, FALSE);
|
|
|
|
if (plugin_program_name == NULL)
|
|
return found;
|
|
@@ -501,7 +505,7 @@ load_plugin (bfd *abfd)
|
|
|
|
full_name = concat (p, "/", ent->d_name, NULL);
|
|
if (stat(full_name, &s) == 0 && S_ISREG (s.st_mode))
|
|
- found = try_load_plugin (full_name, abfd, &valid_plugin);
|
|
+ found = try_load_plugin (full_name, abfd, &valid_plugin, TRUE);
|
|
if (has_plugin <= 0)
|
|
has_plugin = valid_plugin;
|
|
free (full_name);
|