Fix garbage collection of common symbols
authorAlan Modra <amodra@gmail.com>
Sat, 17 Jan 2015 11:03:43 +0000 (21:33 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 19 Jan 2015 10:56:30 +0000 (21:26 +1030)
commitc4621b339e6f3153649898b254685f72df8c013d
tree4072fc9a77851dc3acf41c40b3452db137a2c7a5
parent740bdc67c057ee8012327420848eb134e1db4211
Fix garbage collection of common symbols

Running lang_common before garbage collection means slightly less work
in garbage collection code, since common symbols should no longer
appear there.  It does have the side effect of keeping linker script
symbols (at least those defined outside of sections) global too,
hence some testsuite churn.

bfd/
PR 17165
* elf-bfd.h (ELF_COMMON_DEF): Note that this might be true for
linker script assignments too.
* elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
(bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
ld/
PR 17165
* ldlang.c (lang_process): Run lang_common before lang_gc_sections.
ld/testsuite/
* ld-gc/pr14265.d,
* ld-cris/tls-gc-68.d,
* ld-cris/tls-gc-69.d,
* ld-cris/tls-gc-70.d,
* ld-cris/tls-gc-71.d,
* ld-cris/tls-gc-75.d,
* ld-cris/tls-gc-76.d,
* ld-cris/tls-gc-79.d,
* ld-mmix/bpo-10.d,
* ld-mmix/bpo-11.d: Update.
16 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elflink.c
ld/ChangeLog
ld/ldlang.c
ld/testsuite/ChangeLog
ld/testsuite/ld-cris/tls-gc-68.d
ld/testsuite/ld-cris/tls-gc-69.d
ld/testsuite/ld-cris/tls-gc-70.d
ld/testsuite/ld-cris/tls-gc-71.d
ld/testsuite/ld-cris/tls-gc-75.d
ld/testsuite/ld-cris/tls-gc-76.d
ld/testsuite/ld-cris/tls-gc-79.d
ld/testsuite/ld-gc/pr14265.d
ld/testsuite/ld-mmix/bpo-10.d
ld/testsuite/ld-mmix/bpo-11.d