]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/conf/ldscript.ia64
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / conf / ldscript.ia64
1 /* $FreeBSD$ */
2 OUTPUT_FORMAT("elf64-ia64-freebsd", "elf64-ia64-freebsd", "elf64-ia64-freebsd")
3 OUTPUT_ARCH(ia64)
4 ENTRY(__start)
5 SEARCH_DIR(/usr/lib);
6 kernel_text = 0x9ffc000000000000;
7 SECTIONS
8 {
9   /* Read-only sections, merged into text segment: */
10   . = kernel_text + SIZEOF_HEADERS;
11   .interp         : { *(.interp) }
12
13   PROVIDE (btext = .);
14   .text           :
15   {
16     *(.ivt)
17     *(.ivt.text)
18     *(.text .stub .text.* .gnu.linkonce.t.*)
19     /* .gnu.warning sections are handled specially by elf32.em.  */
20     *(.gnu.warning)
21   } = 0x00300000010070000002000001000400
22   .init           : { *(.init) } = 0x00300000010070000002000001000400
23   .plt            : { *(.plt) }
24   .fini           : { *(.fini) } = 0x00300000010070000002000001000400
25   _etext = .;
26   PROVIDE (etext = .);
27
28   .hash           : { *(.hash) }
29   .dynsym         : { *(.dynsym) }
30   .dynstr         : { *(.dynstr) }
31   .gnu.version    : { *(.gnu.version) }
32   .gnu.version_d  : { *(.gnu.version_d) }
33   .gnu.version_r  : { *(.gnu.version_r) }
34   .rela.init      : { *(.rela.init) }
35   .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
36   .rela.fini      : { *(.rela.fini) }
37   .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
38   .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
39   .rela.ctors     : { *(.rela.ctors) }
40   .rela.dtors     : { *(.rela.dtors) }
41   .rela.got       : { *(.rela.got) }
42   .rela.sdata     : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
43   .rela.sbss      : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
44   .rela.sdata2    : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
45   .rela.sbss2     : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
46   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
47   .rela.plt       : { *(.rela.plt) }
48   .rela.IA_64.pltoff   : { *(.rela.IA_64.pltoff) }
49
50   .IA_64.unwind_info   : { *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) }
51   .IA_64.unwind   : { *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) }
52
53   .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
54   .rodata1        : { *(.rodata1) }
55   .sdata2         : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
56   .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
57   .opd            : { *(.opd) }
58
59   /* Adjust the address for the data segment.  We want to start in the next
60      page in the loader virtual memory. */
61   . = ALIGN(65536);
62
63   PROVIDE (bdata = .);
64   .data           :
65   {
66     *(.ivt.data)
67     *(.data .data.* .gnu.linkonce.d.*)
68     SORT(CONSTRUCTORS)
69   }
70   .data1          : { *(.data1) }
71   .dynamic        : { *(.dynamic) }
72   .ctors          :
73   {
74     *(.ctors)
75     *(SORT(.ctors.*))
76   }
77   .dtors          :
78   {
79     *(.dtors)
80     *(SORT(.dtors.*))
81   }
82   . = ALIGN(16);
83   __gp = . + 0x200000;
84   .got            : { *(.got.plt) *(.got) }
85   .IA_64.pltoff   : { *(.IA_64.pltoff) }
86   /* We want the small data sections together, so single-instruction offsets
87      can access them all, and initialized data all before uninitialized, so
88      we can shorten the on-disk segment size.  */
89   .sdata          :
90   {
91     *(.sdata .sdata.* .gnu.linkonce.s.*)
92   }
93   _edata = .;
94   PROVIDE (edata = .);
95   __bss_start = .;
96   .sbss           :
97   {
98     PROVIDE (__sbss_start = .);
99     PROVIDE (___sbss_start = .);
100     *(.dynsbss)
101     *(.sbss .sbss.* .gnu.linkonce.sb.*)
102     *(.scommon)
103     PROVIDE (__sbss_end = .);
104     PROVIDE (___sbss_end = .);
105   }
106   .bss            :
107   {
108    *(.dynbss)
109    *(.bss .bss.* .gnu.linkonce.b.*)
110    *(COMMON)
111    /* Align here to ensure that the .bss section occupies space up to
112       _end.  Align after .bss to ensure correct alignment even if the
113       .bss section disappears because there are no input sections.  */
114    . = ALIGN(64 / 8);
115   }
116   . = ALIGN(64 / 8);
117   _end = .;
118   PROVIDE (end = .);
119   /* Stabs debugging sections.  */
120   .stab          0 : { *(.stab) }
121   .stabstr       0 : { *(.stabstr) }
122   .stab.excl     0 : { *(.stab.excl) }
123   .stab.exclstr  0 : { *(.stab.exclstr) }
124   .stab.index    0 : { *(.stab.index) }
125   .stab.indexstr 0 : { *(.stab.indexstr) }
126   .comment       0 : { *(.comment) }
127   /* DWARF debug sections.
128      Symbols in the DWARF debugging sections are relative to the beginning
129      of the section so we begin them at 0.  */
130   /* DWARF 1 */
131   .debug          0 : { *(.debug) }
132   .line           0 : { *(.line) }
133   /* GNU DWARF 1 extensions */
134   .debug_srcinfo  0 : { *(.debug_srcinfo) }
135   .debug_sfnames  0 : { *(.debug_sfnames) }
136   /* DWARF 1.1 and DWARF 2 */
137   .debug_aranges  0 : { *(.debug_aranges) }
138   .debug_pubnames 0 : { *(.debug_pubnames) }
139   /* DWARF 2 */
140   .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
141   .debug_abbrev   0 : { *(.debug_abbrev) }
142   .debug_line     0 : { *(.debug_line) }
143   .debug_frame    0 : { *(.debug_frame) }
144   .debug_str      0 : { *(.debug_str) }
145   .debug_loc      0 : { *(.debug_loc) }
146   .debug_macinfo  0 : { *(.debug_macinfo) }
147   /* SGI/MIPS DWARF 2 extensions */
148   .debug_weaknames 0 : { *(.debug_weaknames) }
149   .debug_funcnames 0 : { *(.debug_funcnames) }
150   .debug_typenames 0 : { *(.debug_typenames) }
151   .debug_varnames  0 : { *(.debug_varnames) }
152 }