PR22836, "-r -s" doesn't work with -g3 using GCC 7
authorAlan Modra <amodra@gmail.com>
Tue, 13 Feb 2018 03:39:48 +0000 (14:09 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 13 Feb 2018 12:25:49 +0000 (22:55 +1030)
commit6e5e9d58c1eeef5677c90886578a895cb8c164c5
treecb2ae019115967a391262d5f9533e0fd19e7944f
parentf2731e0c374e5323ce4cdae2bcc7b7fe22da1a6f
PR22836, "-r -s" doesn't work with -g3 using GCC 7

This fixes the case where all of a group is removed with ld -r, the
situation in the PR, and failures where part of a group is removed
that contain relocs.

bfd/
PR 22836
* elf.c (_bfd_elf_fixup_group_sections): Account for removed
relocation sections.  If size reduces to just the flag word,
remove that too and mark with SEC_EXCLUDE.
* elflink.c (bfd_elf_final_link): Strip empty group sections.
binutils/
* testsuite/binutils-all/group-7.s,
* testsuite/binutils-all/group-7a.d,
* testsuite/binutils-all/group-7b.d,
* testsuite/binutils-all/group-7c.d: New tests.
* testsuite/binutils-all/objcopy.exp: Run them.
ld/
* testsuite/ld-elf/pr22836-2.d,
* testsuite/ld-elf/pr22836-2.s: New test.
12 files changed:
bfd/ChangeLog
bfd/elf.c
bfd/elflink.c
binutils/ChangeLog
binutils/testsuite/binutils-all/group-7.s [new file with mode: 0644]
binutils/testsuite/binutils-all/group-7a.d [new file with mode: 0644]
binutils/testsuite/binutils-all/group-7b.d [new file with mode: 0644]
binutils/testsuite/binutils-all/group-7c.d [new file with mode: 0644]
binutils/testsuite/binutils-all/objcopy.exp
ld/ChangeLog
ld/testsuite/ld-elf/pr22836-2.d [new file with mode: 0644]
ld/testsuite/ld-elf/pr22836-2.s [new file with mode: 0644]