Improve COFF/PE linker garbage collection by preventing the removal of sections conta...
authorNick Clifton <nickc@redhat.com>
Tue, 22 Mar 2016 12:25:08 +0000 (12:25 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 22 Mar 2016 12:25:08 +0000 (12:25 +0000)
commit4153b6dbb0f38a16fd5b583761aa811212fbb9a5
treed658cb18fecbd0a8691b62fed5924d583108b3a9
parenta97fbc7e3ca781b8d95ed8591c6ee65f2d8a798a
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.
ld/ChangeLog
ld/ldlang.c
ld/ldlang.h
ld/pe-dll.c
ld/testsuite/ld-pe/pr19803.d
ld/testsuite/ld-pe/pr19803.s