summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog15
-rw-r--r--bfd/plugin.c12
-rw-r--r--bfd/plugin.h1
-rw-r--r--bfd/targets.c2
-rw-r--r--binutils/ChangeLog13
-rw-r--r--binutils/ar.c3
-rw-r--r--binutils/nm.c3
7 files changed, 45 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7ae22bb6e2..774dc3f66c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-28 Nick Clifton <nickc@redhat.com>
+
+ * targets.c (_bfd_target_vector): Only include plugin target in
+ all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.
+
2009-05-28 Ulrich Weigand <uweigand@de.ibm.com>
* elf32-spu.c (struct call_info): New member broken_cycle.
@@ -17,7 +22,15 @@
(spu_elf_auto_overlay): Honor call counts when determining number
of stubs required in software i-cache mode.
-2009-05-26 Rafael Avila de Espindola <espindola@google.com>
+2009-05-27 Rafael Avila de Espindola <espindola@google.com>
+
+ * plugin.c (program_name): Remove.
+ (plugin_program_name): New.
+ (bfd_plugin_set_program_name): New.
+ (try_load_plugin): Use plugin_program_name.
+ * plugin.h (bfd_plugin_set_program_name): New.
+
+2009-05-27 Rafael Avila de Espindola <espindola@google.com>
* aclocal.m4: Include ../config/plugins.m4.
* configure.in: Use AC_PLUGINS.
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 49395e8cb7..ca47ab620f 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -106,7 +106,13 @@ add_symbols (void * handle,
return LDPS_OK;
}
-extern char *program_name __attribute__ ((weak));
+static const char *plugin_program_name;
+
+void
+bfd_plugin_set_program_name (const char *program_name)
+{
+ plugin_program_name = program_name;
+}
static int
try_load_plugin (const char *pname)
@@ -180,11 +186,11 @@ load_plugin (void)
if (plugin_name)
return try_load_plugin (plugin_name);
- if (!program_name)
+ if (plugin_program_name == NULL)
return 0;
plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
- p = make_relative_prefix (program_name,
+ p = make_relative_prefix (plugin_program_name,
BINDIR,
plugin_dir);
free (plugin_dir);
diff --git a/bfd/plugin.h b/bfd/plugin.h
index 2fae2de9ce..3091f9705a 100644
--- a/bfd/plugin.h
+++ b/bfd/plugin.h
@@ -23,6 +23,7 @@
#include "bfd.h"
+void bfd_plugin_set_program_name (const char *);
void bfd_plugin_set_plugin (const char *);
typedef struct plugin_data_struct
diff --git a/bfd/targets.c b/bfd/targets.c
index 6ec6a6cb6d..49aa5f1b01 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -1145,7 +1145,9 @@ static const bfd_target * const _bfd_target_vector[] =
&pdp11_aout_vec,
&pef_vec,
&pef_xlib_vec,
+#if BFD_SUPPORTS_PLUGINS
&plugin_vec,
+#endif
#if 0
/* This has the same magic number as RS/6000. */
&pmac_xcoff_vec,
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index cf3eaecece..4acdbf937b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -3,6 +3,19 @@
* readelf.c (display_debug_section): Do not display debug sections
with the NOBITS section type.
+2009-05-27 Rafael Avila de Espindola <espindola@google.com>
+
+ * aclocal.m4: Include ../config/plugins.m4.
+ * configure.in: Use AC_PLUGINS.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+ * doc/Makefile.in: Regenerate.
+
+2009-05-27 Rafael Avila de Espindola <espindola@google.com>
+
+ * ar.c (main): Call bfd_plugin_set_program_name.
+ * nm.c (main): Call bfd_plugin_set_program_name.
+
2009-05-27 Nathan Sidwell <nathan@codesourcery.com>
* sysdump.c (tab): Use puts rather than two printfs.
diff --git a/binutils/ar.c b/binutils/ar.c
index d28419f4f1..318cfe0cc3 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -392,6 +392,9 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+#if BFD_SUPPORTS_PLUGINS
+ bfd_plugin_set_program_name (program_name);
+#endif
expandargv (&argc, &argv);
diff --git a/binutils/nm.c b/binutils/nm.c
index b03d1b6aad..51f67d1431 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -1515,6 +1515,9 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
+#if BFD_SUPPORTS_PLUGINS
+ bfd_plugin_set_program_name (program_name);
+#endif
START_PROGRESS (program_name, 0);