From 05ed43104ef2c3f75779438111e2913dbd4555a6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 2 Mar 2017 17:10:20 +0000 Subject: [PATCH] Support merging build notes in sections without the SHF_GNU_BUILD_NOTE flag set. * objcopy.c (is_merged_note_section): Support build note sections without the SHF_GNU_BUILD_NOTE section flag set. --- binutils/ChangeLog | 2 ++ binutils/objcopy.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index dc93395aa4..4ed3bb0804 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -2,6 +2,8 @@ * readelf.c (print_gnu_build_attribute_description): Use global symbols for OPEN attributes if at all possible. + * objcopy.c (is_merged_note_section): Support build note sections + without the SHF_GNU_BUILD_NOTE section flag set. 2017-03-02 Jan Kratochvil diff --git a/binutils/objcopy.c b/binutils/objcopy.c index baf69907c5..868f122e17 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1217,7 +1217,11 @@ is_merged_note_section (bfd * abfd, asection * sec) && elf_section_data (sec)->this_hdr.sh_type == SHT_NOTE /* FIXME: We currently only support merging GNU_BUILD_NOTEs. We should add support for more note types. */ - && elf_section_data (sec)->this_hdr.sh_flags & SHF_GNU_BUILD_NOTE) + && ((elf_section_data (sec)->this_hdr.sh_flags & SHF_GNU_BUILD_NOTE) != 0 + /* Old versions of GAS (prior to 2.27) could not set the section + flags to OS-specific values, so we also accept sections with the + expected name. */ + || (strcmp (sec->name, GNU_BUILD_ATTRS_SECTION_NAME) == 0))) return TRUE; return FALSE;