BaseTools IA32/X64: move .got contents to the PE/COFF .text section

Move the .got contents to the PE/COFF .text section. This should be
a no-op, since we typically don't generate position independent code
(i.e., using -fPIC). But since the GOT contains variable addresses that
are updated at relocation time only, its contents are best kept in .text
to prevent them from being overwritten inadvertently.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18133 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel 2015-08-03 08:22:00 +00:00 committed by abiesheuvel
parent cdeb268cb0
commit 25e63063e3
3 changed files with 3 additions and 12 deletions

View File

@ -7,6 +7,7 @@ SECTIONS
{
*(.text .stub .text.* .gnu.linkonce.t.*)
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.got .got.*)
}
.data : ALIGN(0x1000)
{
@ -20,10 +21,6 @@ SECTIONS
{
KEEP (*(.eh_frame))
}
.got : ALIGN(0x1000)
{
*(.got .got.*)
}
.rela : ALIGN(0x1000)
{
*(.rela .rela.*)

View File

@ -7,6 +7,7 @@ SECTIONS
{
*(.text .stub .text.* .gnu.linkonce.t.*)
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.got .got.*)
}
.data ALIGN(0x20) :
{
@ -20,10 +21,6 @@ SECTIONS
{
KEEP (*(.eh_frame))
}
.got ALIGN(0x20) :
{
*(.got .got.*)
}
.rela ALIGN(0x20) :
{
*(.rela .rela.*)

View File

@ -7,6 +7,7 @@ SECTIONS
{
*(.text .stub .text.* .gnu.linkonce.t.*)
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.got .got.*)
}
.data ALIGN(0x40) :
{
@ -20,10 +21,6 @@ SECTIONS
{
KEEP (*(.eh_frame))
}
.got ALIGN(0x20) :
{
*(.got .got.*)
}
.rela ALIGN(0x20) :
{
*(.rela .rela.*)