This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Commit: Combine .gnu.build.attributes.* sections into .gnu.build.attributes
- From: Nick Clifton <nickc at redhat dot com>
- To: binutils at sourceware dot org
- Date: Mon, 30 Jul 2018 09:34:22 +0100
- Subject: Commit: Combine .gnu.build.attributes.* sections into .gnu.build.attributes
Hi Guys,
I recently updated the annobin plugin for gcc so that it will now
generate .gnu.build.attributes.<foo> sections whenever a function
is placed into its own section (called <foo>). The patch below
tells the linkers (gold and bfd) to combine these sections back into
the main .gnu.build.attributes section during linking.
Cheers
Nick
gold/ChangeLog
2018-07-30 Nick Clifton <nickc@redhat.com>
* layout.cc (section_name_mapping): Add an entry for
.gnu.build.attributes.
ld/ChangeLog
2018-07-30 Nick Clifton <nickc@redhat.com>
* scripttempl/elf.sc: Place .gnu.build.attributes sections with
other read-only sections.
diff --git a/gold/layout.cc b/gold/layout.cc
index 0df7ed37f0..66162a253d 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -5429,6 +5429,7 @@ const Layout::Section_name_mapping Layout::section_name_mapping[] =
MAPPING_INIT(".gnu.linkonce.armextab.", ".ARM.extab"),
MAPPING_INIT(".ARM.exidx", ".ARM.exidx"),
MAPPING_INIT(".gnu.linkonce.armexidx.", ".ARM.exidx"),
+ MAPPING_INIT(".gnu.build.attributes.", ".gnu.build.attributes"),
};
// Mapping for ".text" section prefixes with -z,keep-text-section-prefix.
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 444aef2942..6bf6936362 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -564,6 +564,7 @@ cat <<EOF
${CREATE_SHLIB-${SDATA2}}
${CREATE_SHLIB-${SBSS2}}
${OTHER_READONLY_SECTIONS}
+ .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) }
.eh_frame_hdr : { *(.eh_frame_hdr) ${RELOCATING+*(.eh_frame_entry .eh_frame_entry.*)} }
.eh_frame ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) ${RELOCATING+*(.eh_frame.*)} }
.gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { *(.gcc_except_table