1 /* $NetBSD: elf_riscv64_efi.lds,v 1.1.1.1 2021/09/30 18:50:09 jmcneill Exp $ */ 2 3 /* SPDX-License-Identifier: GPL-2.0+ */ 4 5 OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") 6 OUTPUT_ARCH(riscv) 7 ENTRY(_start) 8 SECTIONS { 9 .text 0x0 : 10 { 11 _text = .; 12 *(.text.head) 13 *(.text) 14 *(.text.*) 15 *(.gnu.linkonce.t.*) 16 *(.srodata) 17 *(.rodata*) 18 . = ALIGN(16); 19 } 20 _etext = .; 21 _text_size = . - _text; 22 .dynamic : 23 { *(.dynamic) } 24 .data : 25 ALIGN(4096) 26 { 27 _data = .; 28 *(.sdata) 29 *(.data) 30 *(.data1) 31 *(.data.*) 32 *(.got.plt) 33 *(.got) 34 35 /* the EFI loader doesn't seem to like a .bss section, so we stick 36 it all into .data: */ 37 . = ALIGN(16); 38 _bss = .; 39 *(.sbss) 40 *(.scommon) 41 *(.dynbss) 42 *(.bss) 43 *(COMMON) 44 . = ALIGN(16); 45 _bss_end = .; 46 } 47 48 .rela.text : 49 { *(.rela.text) *(.rela.text*) } 50 .rela.dyn : 51 { *(.rela.dyn) } 52 .rela.plt : 53 { *(.rela.plt) } 54 .rela.got : 55 { *(.rela.got) } 56 .rela.data : 57 { *(.rela.data) *(.rela.data*) } 58 . = ALIGN(512); 59 _edata = .; 60 _data_size = . - _data; 61 62 . = ALIGN(4096); 63 .dynsym : 64 { *(.dynsym) } 65 . = ALIGN(4096); 66 .dynstr : 67 { *(.dynstr) } 68 . = ALIGN(4096); 69 .note.gnu.build-id : 70 { *(.note.gnu.build-id) } 71 /DISCARD/ : 72 { 73 *(.rel.reloc) 74 *(.eh_frame) 75 *(.note.GNU-stack) 76 } 77 .comment 0 : 78 { *(.comment) } 79 } 80