/* SPDX-License-Identifier: BSD-2-Clause */ | |
/* | |
* U-Boot EFI linker script | |
* | |
* Modified from usr/lib32/elf_ia32_efi.lds in gnu-efi | |
*/ | |
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") | |
OUTPUT_ARCH(i386) | |
ENTRY(_start) | |
SECTIONS | |
{ | |
image_base = .; | |
.hash : { *(.hash) } /* this MUST come first, EFI expects it */ | |
. = ALIGN(4096); | |
.text : | |
{ | |
*(.text) | |
*(.text.*) | |
*(.gnu.linkonce.t.*) | |
} | |
. = ALIGN(4096); | |
.sdata : | |
{ | |
*(.got.plt) | |
*(.got) | |
*(.srodata) | |
*(.sdata) | |
*(.sbss) | |
*(.scommon) | |
} | |
. = ALIGN(4096); | |
.data : | |
{ | |
*(.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) | |
/* U-Boot lists and device tree */ | |
. = ALIGN(8); | |
*(SORT(.u_boot_list*)); | |
. = ALIGN(8); | |
*(.dtb*); | |
} | |
. = ALIGN(4096); | |
.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*) | |
*(.rel.u_boot_list*) | |
} | |
. = ALIGN(4096); | |
.reloc : /* This is the PECOFF .reloc section! */ | |
{ | |
*(.reloc) | |
} | |
. = ALIGN(4096); | |
.dynsym : { *(.dynsym) } | |
. = ALIGN(4096); | |
.dynstr : { *(.dynstr) } | |
. = ALIGN(4096); | |
/DISCARD/ : | |
{ | |
*(.rel.reloc) | |
*(.eh_frame) | |
*(.note.GNU-stack) | |
} | |
.comment 0 : { *(.comment) } | |
} |