audk/BaseTools/Scripts/gcc4.9-ld-script
Jordan Justen dafe0fedc5 BaseTools: Add GCC49 toolchain; align data sections to 0x40
GCC 4.9 may use 64-byte (0x40) alignment for data sections.

Therefore we use a different link script for GCC 4.9. The only
difference from the gcc4.4-ld-script is the alignment for data
sections.

When using the GCC48 toolchain with GCC 4.9, this error would be
encountered by GenFw:
> GenFw: ERROR 3000: Invalid
>   Unsupported section alignment.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15697 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-28 17:37:10 +00:00

45 lines
752 B
Plaintext

/* OUTPUT_FORMAT(efi-bsdrv-x86_64) */
SECTIONS
{
/* . = 0 + SIZEOF_HEADERS; */
. = 0x280;
.text ALIGN(0x20) :
{
*(.text .stub .text.* .gnu.linkonce.t.*)
. = ALIGN(0x20);
} =0x90909090
.data ALIGN(0x40) :
{
*(
.rodata .rodata.* .gnu.linkonce.r.*
.data .data.* .gnu.linkonce.d.*
.bss .bss.*
*COM*
)
. = ALIGN(0x20);
}
.eh_frame ALIGN(0x20) :
{
KEEP (*(.eh_frame))
}
.got ALIGN(0x20) :
{
*(.got .got.*)
. = ALIGN(0x20);
}
.rela ALIGN(0x20) :
{
*(.rela .rela.*)
}
/DISCARD/ : {
*(.note.GNU-stack) *(.gnu_debuglink)
*(.interp)
*(.dynsym)
*(.dynstr)
*(.dynamic)
*(.hash)
*(.comment)
}
}