mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-12 11:03:37 +08:00
8b6f4cd34f
We must keep all PREINIT_ARRAY, INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-sections. bfd/ PR ld/22677 * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY, INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-sections. ld/ PR ld/22677 * scripttempl/elf.sc (PREINIT_ARRAY): New. Don't add .preinit_array for ld -r. * testsuite/ld-elf/pr22677.d: New file. * testsuite/ld-elf/pr22677.s: Likewise.
19 lines
726 B
Makefile
19 lines
726 B
Makefile
#ld: -r --gc-sections -u foo
|
|
#readelf: -S --wide
|
|
#notarget: d30v-*-* dlx-*-* i960-*-* pj*-*-* pru-*-*
|
|
#notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
|
|
#xfail: cr16-*-* crx-*-* msp430-*-*
|
|
# msp430 puts the init_array and fini_array inside the .rodata section.
|
|
# generic linker targets don't support --gc-sections, nor do a bunch of
|
|
# others.
|
|
# cr16 and crx use non-standard scripts with memory regions, which don't
|
|
# play well with unique group sections under ld -r.
|
|
|
|
#...
|
|
\[[ 0-9]+\] \.preinit_array\.01000[ \t]+PREINIT_ARRAY[ \t0-9a-f]+WA?.*
|
|
#...
|
|
\[[ 0-9]+\] \.init_array\.01000[ \t]+INIT_ARRAY[ \t0-9a-f]+WA?.*
|
|
#...
|
|
\[[ 0-9]+\] \.fini_array\.01000[ \t]+FINI_ARRAY[ \t0-9a-f]+WA?.*
|
|
#pass
|