diff mbox

[edk2,v5,6/8] BaseTools GCC: drop GNU notes section from EFI image

Message ID 1470038497-2536-7-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit 7fd5d619806df5e5b9bdbd0cfe14580040ea3615
Headers show

Commit Message

Ard Biesheuvel Aug. 1, 2016, 8:01 a.m. UTC
Recent versions of GNU ld automatically emit a .notes section into
the ELF binary containing a build id. Since this is an allocatable
section by default, it will be identified by GenFw as a section
that requires PE/COFF conversion, which may cause sections to be
moved around unexpectedly.

So retain the section, but tag it as INFO, which tells the linker
that it should not be accounted for in the binary's memory layout.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Acked-by: Jordan Justen <jordan.l.justen@intel.com>

---
 BaseTools/Scripts/GccBase.lds | 6 ++++++
 1 file changed, 6 insertions(+)

-- 
2.7.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
diff mbox

Patch

diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds
index 7e4cdde9bfea..281af8a9bd33 100644
--- a/BaseTools/Scripts/GccBase.lds
+++ b/BaseTools/Scripts/GccBase.lds
@@ -62,6 +62,12 @@  SECTIONS {
     KEEP (*(.hii))
   }
 
+  /*
+   * Retain the GNU build id but in a non-allocatable section so GenFw
+   * does not copy it into the PE/COFF image.
+   */
+  .build-id (INFO) : { *(.note.gnu.build-id) }
+
   /DISCARD/ : {
     *(.note.GNU-stack)
     *(.gnu_debuglink)