Here's a fix for this issue, though fixing it has just unblocked
another FTBFS issue. I'll file a new bug for that shortly.
Description: Update linker script for gcc-4.9 which uses 64 byte alignment
When the Facp.dll file is built w/ gcc-4.9, it uses a 64-byte alignment for
the data section - but the EDK2 uses a linker script that only requires 32-
byte alignment. This results in a binary that violates the ELF spec. GenFw
has an assertion to catch this when doing a binary conversion - this trips,
and the build fails.
.
This was resolved upstream by adding a new toolchain config for GCC49, which
includes a new linker script that uses 64-byte alignment. This is a more
surgical fix that just adjusts the existing GCC44 toolchain config (which is
what we're using in Debian, even with gcc-4.9) to allow for 64-byte alignment.
Origin: http://sourceforge.net/p/edk2/code/15697/
Bug-Debian: http://bugs.debian.org/771114
Author: dann frazier <[email protected]>
Last-Update: 2014-12-18
Applied-Upstream: commit:r15697
Index: edk2-0~20131112.2590861a/BaseTools/Scripts/gcc4.4-ld-script
===================================================================
--- edk2-0~20131112.2590861a.orig/BaseTools/Scripts/gcc4.4-ld-script
+++ edk2-0~20131112.2590861a/BaseTools/Scripts/gcc4.4-ld-script
@@ -8,7 +8,7 @@ SECTIONS
*(.text .stub .text.* .gnu.linkonce.t.*)
. = ALIGN(0x20);
} =0x90909090
- .data ALIGN(0x20) :
+ .data ALIGN(0x40) :
{
*(
.rodata .rodata.* .gnu.linkonce.r.*