Call plugin_call_cleanup on plugin fatal error.
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 6 Dec 2010 05:38:11 +0000 (05:38 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 6 Dec 2010 05:38:11 +0000 (05:38 +0000)
2010-12-05  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/12289
* plugin.c (message): Call plugin_call_cleanup on fatal
error.

ld/ChangeLog
ld/plugin.c

index 63858ee00fa25047f5ac1e349a1cf25eab17fcae..55e320e98f39e7245372a4b508a997b339a37b41 100644 (file)
@@ -1,3 +1,9 @@
+2010-12-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/12289
+       * plugin.c (message): Call plugin_call_cleanup on fatal
+       error.
+
 2010-12-05  H.J. Lu  <hongjiu.lu@intel.com>
 
        * plugin.c (message): Add a space after `:' in error message.
index 34d76bd84335a128f34f586e2bc6a69b02af5f1e..3d7809c2c40336db90530c2dad7bc20b806de196 100644 (file)
@@ -590,6 +590,9 @@ message (int level, const char *format, ...)
          char *newfmt = ACONCAT ((level == LDPL_FATAL
                                   ? "%P%F: " : "%P%X: ",
                                   format, "\n", NULL));
+         if (plugin_call_cleanup ())
+           info_msg (_("%P: %s: error in plugin cleanup (ignored)\n"),
+                     plugin_error_plugin ());
          vfinfo (stderr, newfmt, args, TRUE);
        }
       break;