xref: /haiku/src/system/ldscripts/x86_64/boot_loader_efi.ld (revision f4ff9cb02c1d292908407314ed023af25e0995da)
1*211483cbSFredrik Holmqvist/* Same as elf_x86_64_fbsd_efi.lds, except for OUTPUT_FORMAT below & ctor support - KEEP IN SYNC */
2*211483cbSFredrik HolmqvistOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
3*211483cbSFredrik HolmqvistOUTPUT_ARCH(i386:x86-64)
4*211483cbSFredrik HolmqvistENTRY(_start)
5*211483cbSFredrik HolmqvistSECTIONS
6*211483cbSFredrik Holmqvist{
7*211483cbSFredrik Holmqvist  . = 0;
8*211483cbSFredrik Holmqvist  ImageBase = .;
9*211483cbSFredrik Holmqvist  .hash : { *(.hash) }	/* this MUST come first! */
10*211483cbSFredrik Holmqvist  . = ALIGN(4096);
11*211483cbSFredrik Holmqvist  .eh_frame :
12*211483cbSFredrik Holmqvist  {
13*211483cbSFredrik Holmqvist    *(.eh_frame)
14*211483cbSFredrik Holmqvist  }
15*211483cbSFredrik Holmqvist  . = ALIGN(4096);
16*211483cbSFredrik Holmqvist  .text :
17*211483cbSFredrik Holmqvist  {
18*211483cbSFredrik Holmqvist   _text = .;
19*211483cbSFredrik Holmqvist   *(.text)
20*211483cbSFredrik Holmqvist   *(.text.*)
21*211483cbSFredrik Holmqvist   *(.gnu.linkonce.t.*)
22*211483cbSFredrik Holmqvist   . = ALIGN(16);
23*211483cbSFredrik Holmqvist  }
24*211483cbSFredrik Holmqvist  _etext = .;
25*211483cbSFredrik Holmqvist  _text_size = . - _text;
26*211483cbSFredrik Holmqvist  . = ALIGN(4096);
27*211483cbSFredrik Holmqvist  .reloc :
28*211483cbSFredrik Holmqvist  {
29*211483cbSFredrik Holmqvist   *(.reloc)
30*211483cbSFredrik Holmqvist  }
31*211483cbSFredrik Holmqvist  . = ALIGN(4096);
32*211483cbSFredrik Holmqvist  .data :
33*211483cbSFredrik Holmqvist  {
34*211483cbSFredrik Holmqvist   . = ALIGN(0x4);
35*211483cbSFredrik Holmqvist   __ctor_list = .;
36*211483cbSFredrik Holmqvist   *(.ctors)
37*211483cbSFredrik Holmqvist   __ctor_end = .;
38*211483cbSFredrik Holmqvist   _data = .;
39*211483cbSFredrik Holmqvist   *(.rodata*)
40*211483cbSFredrik Holmqvist   *(.got.plt)
41*211483cbSFredrik Holmqvist   *(.got)
42*211483cbSFredrik Holmqvist   *(.data*)
43*211483cbSFredrik Holmqvist   *(.sdata)
44*211483cbSFredrik Holmqvist   /* the EFI loader doesn't seem to like a .bss section, so we stick
45*211483cbSFredrik Holmqvist      it all into .data: */
46*211483cbSFredrik Holmqvist   *(.sbss)
47*211483cbSFredrik Holmqvist   *(.scommon)
48*211483cbSFredrik Holmqvist   *(.dynbss)
49*211483cbSFredrik Holmqvist   *(.bss)
50*211483cbSFredrik Holmqvist   *(COMMON)
51*211483cbSFredrik Holmqvist   *(.rel.local)
52*211483cbSFredrik Holmqvist  }
53*211483cbSFredrik Holmqvist  .note.gnu.build-id : { *(.note.gnu.build-id) }
54*211483cbSFredrik Holmqvist
55*211483cbSFredrik Holmqvist  _edata = .;
56*211483cbSFredrik Holmqvist  _data_size = . - _etext;
57*211483cbSFredrik Holmqvist  . = ALIGN(4096);
58*211483cbSFredrik Holmqvist  .dynamic  : { *(.dynamic) }
59*211483cbSFredrik Holmqvist  . = ALIGN(4096);
60*211483cbSFredrik Holmqvist  .rela :
61*211483cbSFredrik Holmqvist  {
62*211483cbSFredrik Holmqvist    *(.rela.data*)
63*211483cbSFredrik Holmqvist    *(.rela.ctors)
64*211483cbSFredrik Holmqvist    *(.rela.got)
65*211483cbSFredrik Holmqvist    *(.rela.stab)
66*211483cbSFredrik Holmqvist  }
67*211483cbSFredrik Holmqvist  . = ALIGN(4096);
68*211483cbSFredrik Holmqvist  .dynsym   : { *(.dynsym) }
69*211483cbSFredrik Holmqvist  . = ALIGN(4096);
70*211483cbSFredrik Holmqvist  .dynstr   : { *(.dynstr) }
71*211483cbSFredrik Holmqvist  . = ALIGN(4096);
72*211483cbSFredrik Holmqvist  .ignored.reloc :
73*211483cbSFredrik Holmqvist  {
74*211483cbSFredrik Holmqvist    *(.rela.reloc)
75*211483cbSFredrik Holmqvist    *(.eh_frame)
76*211483cbSFredrik Holmqvist    *(.note.GNU-stack)
77*211483cbSFredrik Holmqvist  }
78*211483cbSFredrik Holmqvist  .comment 0 : { *(.comment) }
79*211483cbSFredrik Holmqvist}
80