| /* Developed based on GNU-EFI/gnuefi/elf_x86_64_efi.lds, licensed under GNU GPL */ |
| /* Same as elf_x86_64_fbsd_efi.lds, except for OUTPUT_FORMAT below - KEEP IN SYNC */ |
| OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") |
| OUTPUT_ARCH(i386:x86-64) |
| ENTRY(_start) |
| SECTIONS |
| { |
| . = 0; |
| ImageBase = .; |
| /* .hash and/or .gnu.hash MUST come first! */ |
| .hash : { *(.hash) } |
| .gnu.hash : { *(.gnu.hash) } |
| . = ALIGN(4096); |
| .eh_frame : |
| { |
| *(.eh_frame) |
| } |
| . = ALIGN(4096); |
| .text : |
| { |
| _text = .; |
| *(.text) |
| *(.text.*) |
| *(.gnu.linkonce.t.*) |
| . = ALIGN(16); |
| } |
| _etext = .; |
| _text_size = . - _text; |
| . = ALIGN(4096); |
| .reloc : |
| { |
| *(.reloc) |
| } |
| . = ALIGN(4096); |
| .data : |
| { |
| _data = .; |
| *(.rodata*) |
| *(.got.plt) |
| *(.got) |
| /* Expected by lib/x86/desc.c to store exception_table */ |
| exception_table_start = .; |
| *(.data.ex) |
| exception_table_end = .; |
| *(.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) |
| } |
| .note.gnu.build-id : { *(.note.gnu.build-id) } |
| |
| _edata = .; |
| _data_size = . - _etext; |
| . = ALIGN(4096); |
| .dynamic : { *(.dynamic) } |
| . = ALIGN(4096); |
| .rela : |
| { |
| *(.rela.data*) |
| *(.rela.got) |
| *(.rela.stab) |
| } |
| . = ALIGN(4096); |
| .dynsym : { *(.dynsym) } |
| . = ALIGN(4096); |
| .dynstr : { *(.dynstr) } |
| . = ALIGN(4096); |
| .ignored.reloc : |
| { |
| *(.rela.reloc) |
| *(.eh_frame) |
| *(.note.GNU-stack) |
| } |
| .comment 0 : { *(.comment) } |
| } |