From: H.J. Lu Date: Tue, 22 May 2018 02:25:19 +0000 (-0700) Subject: Mark section in a section group with SHF_GROUP X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bae363f1146378207e1dffe5f23845644a1d0b7a;p=binutils-gdb.git Mark section in a section group with SHF_GROUP All sections in a section group should be marked with SHF_GROUP. But some tools generate broken objects without SHF_GROUP. This patch fixes them up for objcopy and strip. PR binutils/23199 * elf.c (setup_group): Mark section in a section group with SHF_GROUP. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bab543b9cef..7233851acd7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2018-05-21 H.J. Lu + + PR binutils/23199 + * elf.c (setup_group): Mark section in a section group with + SHF_GROUP. + 2018-05-18 H.J. Lu PR ld/23194 diff --git a/bfd/elf.c b/bfd/elf.c index 47d046fa834..6c66bbca02c 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -711,7 +711,15 @@ setup_group (bfd *abfd, Elf_Internal_Shdr *hdr, asection *newsect) break; } if (idx < shnum) - dest->shdr = elf_elfsections (abfd)[idx]; + { + dest->shdr = elf_elfsections (abfd)[idx]; + /* PR binutils/23199: All sections in a + section group should be marked with + SHF_GROUP. But some tools generate + broken objects without SHF_GROUP. Fix + them up here. */ + dest->shdr->sh_flags |= SHF_GROUP; + } if (idx >= shnum || dest->shdr->sh_type == SHT_GROUP) {