Extend
commit b7c871edcd
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 17 07:57:15 2017 -0700
Mark debug sections referenced by kept debug sections
to handle the local debug definition section.
bfd/
PR ld/20882
* elflink.c (elf_gc_mark_debug_section): Also check the local
debug definition section.
ld/
PR ld/20882
* testsuite/ld-gc/pr20882.d: Also dump and check .debug_abbrev
section.
* testsuite/ld-gc/pr20882b.s: Add .debug_abbrev section.
-gdwarf-sections doesn't work on targets that lack support to emit
address size relative relocs. The testcase as it was avoided
-gdwarf-sections doing anything by providing a non-empty .debug_line.
It's better to not use -gdwarf-sections. Also, the testcase failed
to match the output for 16-bit address targets like avr.
PR ld/20882
* testsuite/ld-gc/pr20882.d: Don't pass -gdwarf-sections to gas.
Allow for 16-bit address targets and match expected data fully.
* testsuite/ld-gc/pr20882a.s: Delete .debug_line section.
* testsuite/ld-gc/pr20882b.s: Likewise.
* testsuite/ld-gc/pr20882c.s: Likewise.
If a debug section is referenced by a kept debug section, it should
also be kept.
Some targets, like mips, keep input files when there are some special
sections, like .gnu.attributes, even if input file is unused otherwise.
In this case, all debug sections are kept. The new test will fail on
such targets. We can either fix those targets or XFAIL the test.
bfd/
PR ld/20882
* elflink.c (elf_gc_mark_debug_section): New function.
(_bfd_elf_gc_mark_extra_sections): Mark any debug sections
referenced by kept debug sections.
ld/
PR ld/20882
* testsuite/ld-gc/gc.exp: Run pr20882.
* testsuite/ld-gc/pr20882.d: New file.
* testsuite/ld-gc/pr20882a.s: Likewise.
* testsuite/ld-gc/pr20882b.s: Likewise.
* testsuite/ld-gc/pr20882c.s: Likewise.