aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-03-22 12:25:08 +0000
committerNick Clifton <nickc@redhat.com>2016-03-22 12:25:08 +0000
commit4153b6dbb0f38a16fd5b583761aa811212fbb9a5 (patch)
treed658cb18fecbd0a8691b62fed5924d583108b3a9 /ld/ldlang.h
parenta97fbc7e3ca781b8d95ed8591c6ee65f2d8a798a (diff)
downloadbinutils-4153b6dbb0f38a16fd5b583761aa811212fbb9a5.zip
binutils-4153b6dbb0f38a16fd5b583761aa811212fbb9a5.tar.gz
binutils-4153b6dbb0f38a16fd5b583761aa811212fbb9a5.tar.bz2
Improve COFF/PE linker garbage collection by preventing the removal of sections containing exported symbols.
PR ld/19803 * ldlang.c (lang_add_gc_name): New function. Adds the provided symbol name to the list of gc symbols. (lang_process): Call lang_add_gc_name with entry_symbol_default if entry_symbol.name is NULL. Use lang_add_gc_name to add the init and fini function names. * pe-dll.c (process_def_file_and_drectve): Add exported names to the gc symbol list. * testsuite/ld-pe/pr19803.s: Do not export _testval symbol. * testsuite/ld-pe/pr19803.d: Tweak expected output.
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r--ld/ldlang.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h
index c3d1185..65d768b 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -693,4 +693,7 @@ lang_ld_feature (char *);
extern void
lang_print_memory_usage (void);
+extern void
+lang_add_gc_name (const char *);
+
#endif