1/* SPDX-License-Identifier: BSD-2-Clause */ 2/* 3 * U-Boot aarch64 EFI linker script 4 * 5 * Modified from elf_aarch64_efi.lds in gnu-efi 6 */ 7 8OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64") 9OUTPUT_ARCH(aarch64) 10ENTRY(_start) 11SECTIONS 12{ 13 .text 0x0 : { 14 _text = .; 15 *(.text.head) 16 *(.text) 17 *(.text.*) 18 *(.gnu.linkonce.t.*) 19 *(.srodata) 20 *(.rodata*) 21 . = ALIGN(16); 22 } 23 _etext = .; 24 _text_size = . - _text; 25 .dynamic : { *(.dynamic) } 26 .data : { 27 _data = .; 28 *(.sdata) 29 *(.data) 30 *(.data1) 31 *(.data.*) 32 *(.got.plt) 33 *(.got) 34 35 /* 36 * The EFI loader doesn't seem to like a .bss section, so we 37 * stick it all into .data: 38 */ 39 . = ALIGN(16); 40 _bss = .; 41 *(.sbss) 42 *(.scommon) 43 *(.dynbss) 44 *(.bss) 45 *(.bss.*) 46 *(COMMON) 47 . = ALIGN(16); 48 _bss_end = .; 49 _edata = .; 50 } 51 .rela.dyn : { *(.rela.dyn) } 52 .rela.plt : { *(.rela.plt) } 53 .rela.got : { *(.rela.got) } 54 .rela.data : { *(.rela.data) *(.rela.data*) } 55 _data_size = . - _etext; 56 57 . = ALIGN(4096); 58 .dynsym : { *(.dynsym) } 59 . = ALIGN(4096); 60 .dynstr : { *(.dynstr) } 61 . = ALIGN(4096); 62 .note.gnu.build-id : { *(.note.gnu.build-id) } 63 /DISCARD/ : { 64 *(.rel.reloc) 65 *(.eh_frame) 66 *(.note.GNU-stack) 67 } 68 .comment 0 : { *(.comment) } 69} 70