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