1*d72c9455Schristos/* $NetBSD: ldscript,v 1.2 2018/12/24 18:21:50 christos Exp $ */ 2d13f4989Snonaka/* Same as elf_x86_64_fbsd_efi.lds, except for OUTPUT_FORMAT below - KEEP IN SYNC */ 3d13f4989SnonakaOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 4d13f4989SnonakaOUTPUT_ARCH(i386:x86-64) 5d13f4989SnonakaENTRY(_start) 6*d72c9455Schristos 7*d72c9455SchristosPHDRS 8*d72c9455Schristos{ 9*d72c9455Schristos text PT_LOAD; 10*d72c9455Schristos headers PT_PHDR FILEHDR PHDRS; 11*d72c9455Schristos} 12*d72c9455Schristos 13d13f4989SnonakaSECTIONS 14d13f4989Snonaka{ 15d13f4989Snonaka . = 0; 16d13f4989Snonaka ImageBase = .; 17d13f4989Snonaka .hash : { *(.hash) } /* this MUST come first! */ 18d13f4989Snonaka . = ALIGN(4096); 19d13f4989Snonaka .eh_frame : 20d13f4989Snonaka { 21d13f4989Snonaka *(.eh_frame) 22d13f4989Snonaka } 23d13f4989Snonaka . = ALIGN(4096); 24d13f4989Snonaka .text : 25d13f4989Snonaka { 26d13f4989Snonaka *(.text) 27d13f4989Snonaka *(.text.*) 28d13f4989Snonaka *(.gnu.linkonce.t.*) 29*d72c9455Schristos } :text 30d13f4989Snonaka . = ALIGN(4096); 31d13f4989Snonaka .reloc : 32d13f4989Snonaka { 33d13f4989Snonaka *(.reloc) 34d13f4989Snonaka } 35d13f4989Snonaka . = ALIGN(4096); 36d13f4989Snonaka .data : 37d13f4989Snonaka { 38d13f4989Snonaka *(.rodata*) 39d13f4989Snonaka *(.got.plt) 40d13f4989Snonaka *(.got) 41d13f4989Snonaka *(.data*) 42d13f4989Snonaka *(.sdata) 43d13f4989Snonaka /* the EFI loader doesn't seem to like a .bss section, so we stick 44d13f4989Snonaka it all into .data: */ 45d13f4989Snonaka *(.sbss) 46d13f4989Snonaka *(.scommon) 47d13f4989Snonaka *(.dynbss) 48d13f4989Snonaka *(.bss) 49d13f4989Snonaka *(COMMON) 50d13f4989Snonaka *(.rel.local) 51d13f4989Snonaka } 52d13f4989Snonaka . = ALIGN(4096); 53d13f4989Snonaka .dynamic : { *(.dynamic) } 54d13f4989Snonaka . = ALIGN(4096); 55d13f4989Snonaka .rela : 56d13f4989Snonaka { 57d13f4989Snonaka *(.rela.data*) 58d13f4989Snonaka *(.rela.got) 59d13f4989Snonaka *(.rela.stab) 60d13f4989Snonaka } 61d13f4989Snonaka . = ALIGN(4096); 62d13f4989Snonaka .dynsym : { *(.dynsym) } 63d13f4989Snonaka . = ALIGN(4096); 64d13f4989Snonaka .dynstr : { *(.dynstr) } 65d13f4989Snonaka . = ALIGN(4096); 66d13f4989Snonaka .ignored.reloc : 67d13f4989Snonaka { 68d13f4989Snonaka *(.rela.reloc) 69d13f4989Snonaka *(.eh_frame) 70d13f4989Snonaka *(.note.GNU-stack) 71d13f4989Snonaka } 72d13f4989Snonaka .comment 0 : { *(.comment) } 73d13f4989Snonaka} 74