From bae363f1146378207e1dffe5f23845644a1d0b7a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 21 May 2018 19:25:19 -0700 Subject: [PATCH] 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. --- bfd/ChangeLog | 6 ++++++ bfd/elf.c | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bab543b..7233851 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 47d046f..6c66bbc 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) { -- 2.7.4