From eae25ec5773e12af107e65fcf0c94a54bc5180ae Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Sat, 10 May 2014 02:50:01 +0200 Subject: Fix freeing of link_info.hash ld: * ldlang.c (lang_finish): Don't call bfd_link_hash_table_free here. (output_bfd_hash_table_free_fn): New variable. (open_output): Save the _bfd_link_hash_table_free function for the output_bfd into output_bfd_hash_table_free_fn. * ldmain.c (ld_cleanup): If set, call output_bfd_hash_table_free_fn on link_info.hash. * ldlang.h (output_bfd_hash_table_free_fn): Declare. ld/testsuite: * ld-mmix/wrap1.d, ld-mmix/wrap1a.s, ld-mmix/wrap1b.s, ld-mmix/wrap1c.s, ld-mmix/wrap2.d, ld-mmix/wrap3.d, ld-mmix/wrap3a.s, ld-mmix/wrap3b.s, ld-mmix/wrap4.d: New tests. --- ld/ldlang.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ld/ldlang.h') diff --git a/ld/ldlang.h b/ld/ldlang.h index aacd5dc..47cc4df 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -518,6 +518,8 @@ extern lang_statement_list_type input_file_chain; extern int lang_statement_iteration; extern struct asneeded_minfo **asneeded_list_tail; +extern void (*output_bfd_hash_table_free_fn) (struct bfd_link_hash_table *); + extern void lang_init (void); extern void lang_finish -- cgit v1.1