summaryrefslogtreecommitdiff
path: root/elf_x86_64_efi.lds
diff options
context:
space:
mode:
Diffstat (limited to 'elf_x86_64_efi.lds')
-rw-r--r--elf_x86_64_efi.lds85
1 files changed, 44 insertions, 41 deletions
diff --git a/elf_x86_64_efi.lds b/elf_x86_64_efi.lds
index 091187b8..f9811028 100644
--- a/elf_x86_64_efi.lds
+++ b/elf_x86_64_efi.lds
@@ -4,60 +4,63 @@ OUTPUT_ARCH(i386:x86-64)
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);
+ .eh_frame :
+ {
+ *(.eh_frame)
+ }
+ . = ALIGN(4096);
+ .text :
+ {
+ *(.text)
+ }
+ . = ALIGN(4096);
+ .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*)
+ *(.got.plt)
+ *(.got)
+ *(.data*)
+ *(.sdata)
+ /* the EFI loader doesn't seem to like a .bss section, so we stick
+ it all into .data: */
+ *(.sbss)
+ *(.scommon)
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ *(.rel.local)
}
. = ALIGN(4096);
.vendor_cert :
{
- *(.vendor_cert)
+ *(.vendor_cert)
}
-
. = ALIGN(4096);
- .rela.dyn : { *(.rela.dyn) }
- .rela.plt : { *(.rela.plt) }
- .rela.got : { *(.rela.got) }
- .rela.data : { *(.rela.data) *(.rela.data*) }
- _edata = .;
- _data_size = . - _etext;
-
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(4096);
+ .rela :
+ {
+ *(.rela.data*)
+ *(.rela.got)
+ *(.rela.stab)
+ }
. = ALIGN(4096);
- .dynsym : { *(.dynsym) }
+ .dynsym : { *(.dynsym) }
. = ALIGN(4096);
- .dynstr : { *(.dynstr) }
+ .dynstr : { *(.dynstr) }
. = ALIGN(4096);
- /DISCARD/ :
+ .ignored.reloc :
{
- *(.rel.reloc)
+ *(.rela.reloc)
*(.eh_frame)
*(.note.GNU-stack)
}