c4621b339e
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.
32 lines
920 B
Makefile
32 lines
920 B
Makefile
#source: start3.s
|
|
#source: bpo-6.s
|
|
#source: bpo-2.s
|
|
#source: bpo-5.s
|
|
#as: -linker-allocated-gregs
|
|
#ld: -m elf64mmix --gc-sections
|
|
#objdump: -st
|
|
|
|
# Check that GC removes one of the three BPO:s, for the collected section.
|
|
|
|
.*: file format elf64-mmix
|
|
|
|
SYMBOL TABLE:
|
|
0+ l d \.init 0+ (|\.init)
|
|
0+10 l d \.text 0+ (|\.text)
|
|
0+7e8 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
|
|
0+ l df \*ABS\* 0+ .*
|
|
0+ l \.init 0+ _start
|
|
0+ l df \*ABS\* 0+ .*
|
|
0+10 l \.text 0+ _start\.
|
|
0+14 g \.text 0+ x
|
|
0+10 g \.text 0+ x2
|
|
2000000000000000 g \.text 0+ __bss_start
|
|
2000000000000000 g \.text 0+ _edata
|
|
2000000000000000 g \.text 0+ _end
|
|
|
|
Contents of section \.init:
|
|
0000 00000000 0000003d 00000000 0000003a .*
|
|
Contents of section \.text:
|
|
0010 232dfe00 232dfd00 .*
|
|
Contents of section \.MMIX\.reg_contents:
|
|
07e8 00000000 0000107c 00000000 0000a420 .*
|