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