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.
40 lines
1.2 KiB
Makefile
40 lines
1.2 KiB
Makefile
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
|
|
#ld: -m crislinux --gc-sections -u gc76fn
|
|
#source: start1.s
|
|
#source: tls-gc-76.s
|
|
#source: tls-hx.s
|
|
#objdump: -s -t -r -p
|
|
|
|
# Executable with a single R_CRIS_32_DTPREL, gc:ed away.
|
|
# A GOT reference through a local symbol to a variable survives gc.
|
|
|
|
|
|
.*: file format elf32-cris
|
|
|
|
Program Header:
|
|
LOAD off 0x0+ vaddr 0x0+80000 paddr 0x0+80000 align 2\*\*13
|
|
filesz 0x0+80 memsz 0x0+80 flags r-x
|
|
LOAD off 0x0+80 vaddr 0x0+82080 paddr 0x0+82080 align 2\*\*13
|
|
filesz 0x0+14 memsz 0x0+14 flags rw-
|
|
private flags = 0:
|
|
|
|
SYMBOL TABLE:
|
|
0+80074 l d \.text 0+ \.text
|
|
0+82080 l d \.got 0+ \.got
|
|
0+82090 l d \.data 0+ \.data
|
|
0+ l df \*ABS\* 0+ .*
|
|
0+82090 l O \.data 0+4 gc76var
|
|
0+ l df \*ABS\* 0+ .*
|
|
0+82080 l O \.got 0+ _GLOBAL_OFFSET_TABLE_
|
|
0+80074 g \.text 0+ _start
|
|
0+82094 g \.data 0+ __bss_start
|
|
0+82094 g \.data 0+ _edata
|
|
0+820a0 g \.data 0+ _end
|
|
0+80078 g F \.text 0+6 gc76fn
|
|
|
|
Contents of section \.text:
|
|
80074 41b20+ 6fae0c00 0+ .*
|
|
Contents of section \.got:
|
|
82080 0+ 0+ 0+ 90200800 .*
|
|
Contents of section \.data:
|
|
82090 0+ .*
|