aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 19c42d9..6e86c3d 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -174,15 +174,14 @@ static struct bfd_link_callbacks link_callbacks =
struct bfd_link_info link_info;
static void
-remove_output (void)
+ld_cleanup (void)
{
- if (output_filename)
- {
- if (link_info.output_bfd)
- bfd_cache_close (link_info.output_bfd);
- if (delete_output_file_on_failure)
- unlink_if_ordinary (output_filename);
- }
+ bfd_cache_close_all ();
+#ifdef ENABLE_PLUGINS
+ plugin_call_cleanup ();
+#endif
+ if (output_filename && delete_output_file_on_failure)
+ unlink_if_ordinary (output_filename);
}
int
@@ -211,7 +210,7 @@ main (int argc, char **argv)
bfd_set_error_program_name (program_name);
- xatexit (remove_output);
+ xatexit (ld_cleanup);
/* Set up the sysroot directory. */
ld_sysroot = get_sysroot (argc, argv);