xref: /DragonStub/gnuefi/elf_ia64_efi.lds (revision 2cc0b085fb82e80d43cc08c8376dff9f9532a72d)
1530d68baSNigel CroxonOUTPUT_FORMAT("elf64-ia64-little")
2530d68baSNigel CroxonOUTPUT_ARCH(ia64)
3530d68baSNigel CroxonENTRY(_start_plabel)
4530d68baSNigel CroxonSECTIONS
5530d68baSNigel Croxon{
6530d68baSNigel Croxon  . = 0;
7530d68baSNigel Croxon  ImageBase = .;
8*2cc0b085SSergei Trofimovich  /* .hash and/or .gnu.hash MUST come first! */
9*2cc0b085SSergei Trofimovich  .hash : { *(.hash) }
10*2cc0b085SSergei Trofimovich  .gnu.hash : { *(.gnu.hash) }
11530d68baSNigel Croxon  . = ALIGN(4096);
12530d68baSNigel Croxon  .text :
13530d68baSNigel Croxon  {
1411a459baSNigel Croxon   _text = .;
15530d68baSNigel Croxon   *(.text)
16530d68baSNigel Croxon   *(.text.*)
17530d68baSNigel Croxon   *(.gnu.linkonce.t.*)
1811a459baSNigel Croxon   . = ALIGN(16);
19530d68baSNigel Croxon  }
2011a459baSNigel Croxon  _etext = .;
2111a459baSNigel Croxon  _text_size = . - _text;
22530d68baSNigel Croxon  . = ALIGN(4096);
23530d68baSNigel Croxon  __gp = ALIGN (8) + 0x200000;
24530d68baSNigel Croxon  .sdata :
25530d68baSNigel Croxon  {
2611a459baSNigel Croxon   _data = .;
27530d68baSNigel Croxon   *(.got.plt)
28530d68baSNigel Croxon   *(.got)
29530d68baSNigel Croxon   *(.srodata)
30530d68baSNigel Croxon   *(.sdata)
31530d68baSNigel Croxon   *(.sbss)
32530d68baSNigel Croxon   *(.scommon)
33530d68baSNigel Croxon  }
34530d68baSNigel Croxon  . = ALIGN(4096);
35530d68baSNigel Croxon  .data :
36530d68baSNigel Croxon  {
37530d68baSNigel Croxon   *(.rodata*)
38530d68baSNigel Croxon   *(.ctors)
39530d68baSNigel Croxon   *(.data*)
40530d68baSNigel Croxon   *(.gnu.linkonce.d*)
41530d68baSNigel Croxon   *(.plabel)	/* data whose relocs we want to ignore */
42530d68baSNigel Croxon   /* the EFI loader doesn't seem to like a .bss section, so we stick
43530d68baSNigel Croxon      it all into .data: */
44530d68baSNigel Croxon   *(.dynbss)
45530d68baSNigel Croxon   *(.bss)
46530d68baSNigel Croxon   *(COMMON)
47530d68baSNigel Croxon  }
48d39106b3SNigel Croxon  .note.gnu.build-id : { *(.note.gnu.build-id) }
49d39106b3SNigel Croxon
50530d68baSNigel Croxon  . = ALIGN(4096);
51530d68baSNigel Croxon  .dynamic  : { *(.dynamic) }
52530d68baSNigel Croxon  . = ALIGN(4096);
53530d68baSNigel Croxon  .rela :
54530d68baSNigel Croxon  {
55530d68baSNigel Croxon    *(.rela.text)
56530d68baSNigel Croxon    *(.rela.data*)
57530d68baSNigel Croxon    *(.rela.sdata)
58530d68baSNigel Croxon    *(.rela.got)
59530d68baSNigel Croxon    *(.rela.gnu.linkonce.d*)
60530d68baSNigel Croxon    *(.rela.stab)
61530d68baSNigel Croxon    *(.rela.ctors)
62530d68baSNigel Croxon  }
6311a459baSNigel Croxon  _edata = .;
6411a459baSNigel Croxon  _data_size = . - _etext;
65530d68baSNigel Croxon  . = ALIGN(4096);
66530d68baSNigel Croxon  .reloc :		/* This is the PECOFF .reloc section! */
67530d68baSNigel Croxon  {
68530d68baSNigel Croxon    *(.reloc)
69530d68baSNigel Croxon  }
70530d68baSNigel Croxon  . = ALIGN(4096);
71530d68baSNigel Croxon  .dynsym   : { *(.dynsym) }
72530d68baSNigel Croxon  . = ALIGN(4096);
73530d68baSNigel Croxon  .dynstr   : { *(.dynstr) }
74530d68baSNigel Croxon  /DISCARD/ :
75530d68baSNigel Croxon  {
76530d68baSNigel Croxon    *(.rela.plabel)
77530d68baSNigel Croxon    *(.rela.reloc)
78530d68baSNigel Croxon    *(.IA_64.unwind*)
79530d68baSNigel Croxon    *(.IA64.unwind*)
80530d68baSNigel Croxon  }
81530d68baSNigel Croxon}
82