Mark debug sections referenced by kept debug sections
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 17 May 2017 14:57:15 +0000 (07:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 17 May 2017 14:57:26 +0000 (07:57 -0700)
commitb7c871edcd83ccdc5fcd8148a7f433efd6b52255
treed1f43eadeeac5387cca51b23a1b8e9da8aa0fbb6
parent0d5c69990c1992289f7b286600a43de4d5d44062
Mark debug sections referenced by kept debug sections

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.
bfd/ChangeLog
bfd/elflink.c
ld/ChangeLog
ld/testsuite/ld-gc/gc.exp
ld/testsuite/ld-gc/pr20882.d [new file with mode: 0644]
ld/testsuite/ld-gc/pr20882a.s [new file with mode: 0644]
ld/testsuite/ld-gc/pr20882b.s [new file with mode: 0644]
ld/testsuite/ld-gc/pr20882c.s [new file with mode: 0644]