binutils-gdb/ld/testsuite/ld-elf/pr27590b.d
H.J. Lu 3818d4ab06 elf: Handle .gnu.debuglto_.debug_* sections
commit 994b251328
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jan 17 20:01:16 2021 -0800

    ld/elf: Ignore section symbols when matching linkonce with comdat

ignored section symbols when comparing symbols in 2 sections.  Since all
references to debugging sections are done with section symbols, symbols
in debugging sections are ignored and we fail to match symbols in comdat
debugging sections.  Also .gnu.debuglto_.debug_* sections aren't treated
as debugging sections.

1. Treate .gnu.debuglto_.debug_ section as debugging section unless it
is marked with SHF_EXCLUDE.
2. Revert commit 994b251328 in elf_create_symbuf.
3. Ignore section symbols only when matching non-debugging sections or
linkonce section with comdat section.

bfd/

	PR ld/27590
	* elf.c (_bfd_elf_make_section_from_shdr): Treate
	.gnu.debuglto_.debug_ section as debugging section unless it is
	marked with SHF_EXCLUDE.
	* elflink.c (elf_create_symbuf): Revert commit 994b251328.
	(bfd_elf_match_symbols_in_sections): Ignore section symbols when
	matching non-debugging sections or linkonce section with comdat
	section.

ld/

	PR ld/27590
	* testsuite/ld-elf/pr27590.s: New file.
	* testsuite/ld-elf/pr27590a.d: Likewise.
	* testsuite/ld-elf/pr27590b.d: Likewise.
	* testsuite/ld-i386/i386.exp: Also run ld/27193 test with
	--reduce-memory-overheads.
2021-03-18 20:57:02 -07:00

11 lines
420 B
Makefile

#source: pr27590.s
#ld: -r tmpdir/pr27590.o --reduce-memory-overheads
#readelf: -rW
#xfail: [is_generic]
Relocation section '\.rel.*\.gnu\.debuglto_\.debug_macro' at offset 0x[0-9a-z]+ contains 2 entries:
[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+\.gnu\.debuglto_\.debug_macro.*
[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+\.gnu\.debuglto_\.debug_macro.*
#pass