xref: /netbsd-src/sys/arch/i386/stand/efiboot/bootx64/ldscript (revision d72c9455a0f0b53c27de8707ee21f1fe4126cd26)
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