1/* $FreeBSD$ */ 2OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") 3OUTPUT_ARCH(riscv64) 4ENTRY(_start) 5SECTIONS 6{ 7 /* Read-only sections, merged into text segment: */ 8 . = 0; 9 ImageBase = .; 10 .text : { 11 *(.peheader) 12 *(.text .stub .text.* .gnu.linkonce.t.*) 13 /* .gnu.warning sections are handled specially by elf32.em. */ 14 *(.gnu.warning) 15 *(.plt) 16 } =0x9090 17 . = ALIGN(16); 18 .data : { 19 *(.rodata .rodata.* .gnu.linkonce.r.*) 20 *(.rodata1) 21 *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) 22 *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) 23 *(.opd) 24 *(.data .data.* .gnu.linkonce.d.*) 25 *(.data1) 26 *(.plabel) 27 28 . = ALIGN(16); 29 __bss_start = .; 30 *(.sbss .sbss.* .gnu.linkonce.sb.*) 31 *(.scommon) 32 *(.dynbss) 33 *(.bss *.bss.*) 34 *(COMMON) 35 . = ALIGN(16); 36 __bss_end = .; 37 } 38 . = ALIGN(16); 39 set_Xcommand_set : { 40 __start_set_Xcommand_set = .; 41 *(set_Xcommand_set) 42 __stop_set_Xcommand_set = .; 43 } 44 set_Xficl_compile_set : { 45 __start_set_Xficl_compile_set = .; 46 *(set_Xficl_compile_set) 47 __stop_set_Xficl_compile_set = .; 48 } 49 . = ALIGN(16); 50 .sdata : { 51 /* 52 * u-boot expects the gp register to be untouched by the EFI payload, so we 53 * can't enable this yet. 54 */ 55 /* __global_pointer$ = . + 0x800; */ 56 *(.got.plt .got) 57 *(.sdata .sdata.* .gnu.linkonce.s.*) 58 *(dynsbss) 59 *(.scommon) 60 } 61 . = ALIGN(16); 62 .dynamic : { *(.dynamic) } 63 . = ALIGN(16); 64 .rela.dyn : { 65 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) 66 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) 67 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) 68 *(.rela.got) 69 *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) 70 *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) 71 *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) 72 *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) 73 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) 74 *(.rela.plt) 75 *(.relset_*) 76 *(.rela.dyn .rela.dyn.*) 77 } 78 . = ALIGN(16); 79 .reloc : { *(.reloc) } 80 . = ALIGN(16); 81 .dynsym : { *(.dynsym) } 82 _edata = .; 83 84 /* Unused sections */ 85 .interp : { *(.interp) } 86 .dynstr : { *(.dynstr) } 87 .hash : { *(.hash) } 88} 89