1*5b3b9a58SWarner Losh/* 2*5b3b9a58SWarner LoshOUTPUT_FORMAT("elf64-aarch64-freebsd", "elf64-aarch64-freebsd", "elf64-aarch64-freebsd") 3*5b3b9a58SWarner Losh*/ 4*5b3b9a58SWarner LoshOUTPUT_ARCH(aarch64) 5*5b3b9a58SWarner LoshENTRY(_start) 6*5b3b9a58SWarner LoshSECTIONS 7*5b3b9a58SWarner Losh{ 8*5b3b9a58SWarner Losh /* Read-only sections, merged into text segment: */ 9*5b3b9a58SWarner Losh . = 0; 10*5b3b9a58SWarner Losh ImageBase = .; 11*5b3b9a58SWarner Losh .text : { 12*5b3b9a58SWarner Losh *(.peheader) 13*5b3b9a58SWarner Losh *(.text .stub .text.* .gnu.linkonce.t.*) 14*5b3b9a58SWarner Losh /* .gnu.warning sections are handled specially by elf32.em. */ 15*5b3b9a58SWarner Losh *(.gnu.warning) 16*5b3b9a58SWarner Losh *(.plt) 17*5b3b9a58SWarner Losh } =0xD4200000 18*5b3b9a58SWarner Losh . = ALIGN(4096); 19*5b3b9a58SWarner Losh _etext = .; 20*5b3b9a58SWarner Losh __data_start = .; 21*5b3b9a58SWarner Losh .data : { 22*5b3b9a58SWarner Losh *(.rodata .rodata.* .gnu.linkonce.r.*) 23*5b3b9a58SWarner Losh *(.rodata1) 24*5b3b9a58SWarner Losh *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) 25*5b3b9a58SWarner Losh *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) 26*5b3b9a58SWarner Losh *(.opd) 27*5b3b9a58SWarner Losh *(.data .data.* .gnu.linkonce.d.*) 28*5b3b9a58SWarner Losh *(.data1) 29*5b3b9a58SWarner Losh *(.plabel) 30*5b3b9a58SWarner Losh 31*5b3b9a58SWarner Losh . = ALIGN(16); 32*5b3b9a58SWarner Losh __bss_start = .; 33*5b3b9a58SWarner Losh *(.sbss .sbss.* .gnu.linkonce.sb.*) 34*5b3b9a58SWarner Losh *(.scommon) 35*5b3b9a58SWarner Losh *(.dynbss) 36*5b3b9a58SWarner Losh *(.bss *.bss.*) 37*5b3b9a58SWarner Losh *(COMMON) 38*5b3b9a58SWarner Losh . = ALIGN(16); 39*5b3b9a58SWarner Losh __bss_end = .; 40*5b3b9a58SWarner Losh } 41*5b3b9a58SWarner Losh . = ALIGN(16); 42*5b3b9a58SWarner Losh set_Xcommand_set : { 43*5b3b9a58SWarner Losh __start_set_Xcommand_set = .; 44*5b3b9a58SWarner Losh *(set_Xcommand_set) 45*5b3b9a58SWarner Losh __stop_set_Xcommand_set = .; 46*5b3b9a58SWarner Losh } 47*5b3b9a58SWarner Losh set_Xficl_compile_set : { 48*5b3b9a58SWarner Losh __start_set_Xficl_compile_set = .; 49*5b3b9a58SWarner Losh *(set_Xficl_compile_set) 50*5b3b9a58SWarner Losh __stop_set_Xficl_compile_set = .; 51*5b3b9a58SWarner Losh } 52*5b3b9a58SWarner Losh . = ALIGN(16); 53*5b3b9a58SWarner Losh __gp = .; 54*5b3b9a58SWarner Losh .sdata : { 55*5b3b9a58SWarner Losh *(.got.plt .got) 56*5b3b9a58SWarner Losh *(.sdata .sdata.* .gnu.linkonce.s.*) 57*5b3b9a58SWarner Losh *(dynsbss) 58*5b3b9a58SWarner Losh *(.scommon) 59*5b3b9a58SWarner Losh } 60*5b3b9a58SWarner Losh . = ALIGN(16); 61*5b3b9a58SWarner Losh .dynamic : { *(.dynamic) } 62*5b3b9a58SWarner Losh . = ALIGN(16); 63*5b3b9a58SWarner Losh .rela.dyn : { 64*5b3b9a58SWarner Losh *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) 65*5b3b9a58SWarner Losh *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) 66*5b3b9a58SWarner Losh *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) 67*5b3b9a58SWarner Losh *(.rela.got) 68*5b3b9a58SWarner Losh *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) 69*5b3b9a58SWarner Losh *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) 70*5b3b9a58SWarner Losh *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) 71*5b3b9a58SWarner Losh *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) 72*5b3b9a58SWarner Losh *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) 73*5b3b9a58SWarner Losh *(.rela.plt) 74*5b3b9a58SWarner Losh *(.relset_*) 75*5b3b9a58SWarner Losh *(.rela.dyn .rela.dyn.*) 76*5b3b9a58SWarner Losh } 77*5b3b9a58SWarner Losh . = ALIGN(16); 78*5b3b9a58SWarner Losh .reloc : { *(.reloc) } 79*5b3b9a58SWarner Losh . = ALIGN(16); 80*5b3b9a58SWarner Losh .dynsym : { *(.dynsym) } 81*5b3b9a58SWarner Losh _edata = .; 82*5b3b9a58SWarner Losh __data_size = . - __data_start; 83*5b3b9a58SWarner Losh 84*5b3b9a58SWarner Losh /* Unused sections */ 85*5b3b9a58SWarner Losh .interp : { *(.interp) } 86*5b3b9a58SWarner Losh .dynstr : { *(.dynstr) } 87*5b3b9a58SWarner Losh .hash : { *(.hash) } 88*5b3b9a58SWarner Losh} 89