Set BFD target to "plugin" for "nm --plugin".
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Oct 2010 10:49:19 +0000 (10:49 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Oct 2010 10:49:19 +0000 (10:49 +0000)
2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>

PR binutils/12088
* nm.c (plugin_target): New.
(main): Set plugin_target to "plugin" for --plugin.
(display_file): Pass plugin_target to bfd_openr if target
isn't set.

binutils/ChangeLog
binutils/nm.c

index e8ea6ba..6dfe6ee 100644 (file)
@@ -1,3 +1,11 @@
+2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/12088
+       * nm.c (plugin_target): New.
+       (main): Set plugin_target to "plugin" for --plugin.
+       (display_file): Pass plugin_target to bfd_openr if target
+       isn't set.
+
 2010-09-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * configure: Regenerate.
index 0ee7deb..862b2b9 100644 (file)
@@ -173,6 +173,7 @@ static char other_format[] = "%02x";
 static char desc_format[] = "%04x";
 
 static char *target = NULL;
+static char *plugin_target = NULL;
 
 /* Used to cache the line numbers for a BFD.  */
 static bfd *lineno_cache_bfd;
@@ -1183,7 +1184,7 @@ display_file (char *filename)
   if (get_file_size (filename) < 1)
     return FALSE;
 
-  file = bfd_openr (filename, target);
+  file = bfd_openr (filename, target ? target : plugin_target);
   if (file == NULL)
     {
       bfd_nonfatal (filename);
@@ -1621,6 +1622,7 @@ main (int argc, char **argv)
 
        case OPTION_PLUGIN:     /* --plugin */
 #if BFD_SUPPORTS_PLUGINS
+         plugin_target = "plugin";
          bfd_plugin_set_plugin (optarg);
 #else
          fatal (_("sorry - this program has been built without plugin support\n"));