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