summaryrefslogtreecommitdiff
path: root/elf_ia32_efi.lds
diff options
context:
space:
mode:
Diffstat (limited to 'elf_ia32_efi.lds')
-rw-r--r--elf_ia32_efi.lds83
1 files changed, 44 insertions, 39 deletions
diff --git a/elf_ia32_efi.lds b/elf_ia32_efi.lds
index b649e15f..12d4085b 100644
--- a/elf_ia32_efi.lds
+++ b/elf_ia32_efi.lds
@@ -3,56 +3,61 @@ OUTPUT_ARCH(i386)
ENTRY(_start)
SECTIONS
{
- .text 0x0 : {
- *(.text.head)
- *(.text)
- *(.text.*)
- *(.gnu.linkonce.t.*)
- *(.srodata)
- *(.rodata*)
- . = ALIGN(16);
- _etext = .;
+ . = 0;
+ ImageBase = .;
+ .hash : { *(.hash) } /* this MUST come first! */
+ . = ALIGN(4096);
+ .text :
+ {
+ *(.text)
+ *(.text.*)
+ *(.gnu.linkonce.t.*)
+ }
+ .reloc :
+ {
+ *(.reloc)
}
- .dynamic : { *(.dynamic) }
+ . = ALIGN(4096);
.data :
{
- *(.sdata)
- *(.data)
- *(.data1)
- *(.data.*)
- *(.got.plt)
- *(.got)
-
- /* the EFI loader doesn't seem to like a .bss section, so we stick
- * it all into .data: */
- . = ALIGN(16);
- _bss = .;
- *(.sbss)
- *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- . = ALIGN(16);
- _bss_end = .;
+ *(.rodata*)
+ *(.data)
+ *(.data1)
+ *(.data.*)
+ *(.sdata)
+ *(.got.plt)
+ *(.got)
+ /* the EFI loader doesn't seem to like a .bss section, so we stick
+ it all into .data: */
+ *(.sbss)
+ *(.scommon)
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
}
. = ALIGN(4096);
.vendor_cert :
{
- *(.vendor_cert)
+ *(.vendor_cert)
}
-
. = ALIGN(4096);
- .rel.dyn : { *(.rel.dyn) }
- .rel.plt : { *(.rel.plt) }
- .rel.got : { *(.rel.got) }
- .rel.data : { *(.rel.data) *(.rel.data*) }
- _edata = .;
- _data_size = . - _etext;
-
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(4096);
+ .rel :
+ {
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.got)
+ *(.rel.stab)
+ *(.data.rel.ro.local)
+ *(.data.rel.local)
+ *(.data.rel.ro)
+ *(.data.rel*)
+ }
. = ALIGN(4096);
- .dynsym : { *(.dynsym) }
+ .dynsym : { *(.dynsym) }
. = ALIGN(4096);
- .dynstr : { *(.dynstr) }
+ .dynstr : { *(.dynstr) }
. = ALIGN(4096);
/DISCARD/ :
{