Ignore machine-check MSRs
[freebsd-src/fkvm-freebsd.git] / sys / conf / ldscript.mips
bloba32852c4d89ccda699036fac6b4f49a28674352e
1 /* $FreeBSD$ */
2 OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
3 OUTPUT_ARCH(mips)
4 ENTRY(_start)
5 SEARCH_DIR(/usr/lib);
6 /* Do we need any of these for elf?
7    __DYNAMIC = 0;
8 PROVIDE (_DYNAMIC = 0);
9 */
10 SECTIONS
12   /* Read-only sections, merged into text segment: */
13   . = 0x80100000 + SIZEOF_HEADERS;
14   .interp     : { *(.interp)    }
15   .hash          : { *(.hash)           }
16   .dynsym        : { *(.dynsym)         }
17   .dynstr        : { *(.dynstr)         }
18   .gnu.version   : { *(.gnu.version)    }
19   .gnu.version_d   : { *(.gnu.version_d)        }
20   .gnu.version_r   : { *(.gnu.version_r)        }
21   .rel.init      : { *(.rel.init)       }
22   .rela.init     : { *(.rela.init)      }
23   .rel.text      :
24     {
25       *(.rel.text)
26       *(.rel.text.*)
27       *(.rel.gnu.linkonce.t.*)
28     }
29   .rela.text     :
30     {
31       *(.rela.text)
32       *(.rela.text.*)
33       *(.rela.gnu.linkonce.t.*)
34     }
35   .rel.fini      : { *(.rel.fini)       }
36   .rela.fini     : { *(.rela.fini)      }
37   .rel.rodata    :
38     {
39       *(.rel.rodata)
40       *(.rel.rodata.*)
41       *(.rel.gnu.linkonce.r.*)
42     }
43   .rela.rodata   :
44     {
45       *(.rela.rodata)
46       *(.rela.rodata.*)
47       *(.rela.gnu.linkonce.r.*)
48     }
49   .rel.data      :
50     {
51       *(.rel.data)
52       *(.rel.data.*)
53       *(.rel.gnu.linkonce.d.*)
54     }
55   .rela.data     :
56     {
57       *(.rela.data)
58       *(.rela.data.*)
59       *(.rela.gnu.linkonce.d.*)
60     }
61   .rel.ctors     : { *(.rel.ctors)      }
62   .rela.ctors    : { *(.rela.ctors)     }
63   .rel.dtors     : { *(.rel.dtors)      }
64   .rela.dtors    : { *(.rela.dtors)     }
65   .rel.got       : { *(.rel.got)                }
66   .rela.got      : { *(.rela.got)               }
67   .rel.sdata     :
68     {
69       *(.rel.sdata)
70       *(.rel.sdata.*)
71       *(.rel.gnu.linkonce.s.*)
72     }
73   .rela.sdata     :
74     {
75       *(.rela.sdata)
76       *(.rela.sdata.*)
77       *(.rela.gnu.linkonce.s.*)
78     }
79   .rel.sbss      :
80     { 
81       *(.rel.sbss)
82       *(.rel.sbss.*)
83       *(.rel.gnu.linkonce.sb.*)
84     }
85   .rela.sbss     :
86     {
87       *(.rela.sbss)
88       *(.rela.sbss.*)
89       *(.rel.gnu.linkonce.sb.*)
90     }
91   .rel.sdata2    : 
92     { 
93       *(.rel.sdata2)
94       *(.rel.sdata2.*)
95       *(.rel.gnu.linkonce.s2.*)
96     }
97   .rela.sdata2   : 
98     {
99       *(.rela.sdata2)
100       *(.rela.sdata2.*)
101       *(.rela.gnu.linkonce.s2.*)
102     }
103   .rel.sbss2     : 
104     { 
105       *(.rel.sbss2)     
106       *(.rel.sbss2.*)
107       *(.rel.gnu.linkonce.sb2.*)
108     }
109   .rela.sbss2    : 
110     { 
111       *(.rela.sbss2)    
112       *(.rela.sbss2.*)
113       *(.rela.gnu.linkonce.sb2.*)
114     }
115   .rel.bss       : 
116     { 
117       *(.rel.bss)
118       *(.rel.bss.*)
119       *(.rel.gnu.linkonce.b.*)
120     }
121   .rela.bss      : 
122     { 
123       *(.rela.bss)
124       *(.rela.bss.*)
125       *(.rela.gnu.linkonce.b.*)
126     }
127   .rel.plt       : { *(.rel.plt)                }
128   .rela.plt      : { *(.rela.plt)               }
129   .init          : 
130   { 
131     KEEP (*(.init))
132   } =0x1000000
133   .text      :
134   {
135     *(.trap)
136     *(.text)
137     *(.text.*)
138     *(.stub)
139     /* .gnu.warning sections are handled specially by elf32.em.  */
140     *(.gnu.warning)
141     *(.gnu.linkonce.t.*)
142   } =0x1000000
143   .fini      :
144   {
145     KEEP (*(.fini))
146   } =0x1000000
147   PROVIDE (__etext = .);
148   PROVIDE (_etext = .);
149   PROVIDE (etext = .);
150   .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) }
151   .rodata1   : { *(.rodata1) }
152   .reginfo : { *(.reginfo) }
153   .sdata2   : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) }
154   .sbss2   : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) }
155   . = ALIGN(0x2000) + (. & (0x2000 - 1));
156   .data    :
157   {
158     *(.data)
159     *(.data.*)
160     *(.gnu.linkonce.d.*)
161     SORT(CONSTRUCTORS)
162   }
163   .data1   : { *(.data1) }
164   .eh_frame : { KEEP (*(.eh_frame)) }
165   .gcc_except_table : { *(.gcc_except_table) }
166   .ctors   : 
167   {
168     /* gcc uses crtbegin.o to find the start of
169        the constructors, so we make sure it is
170        first.  Because this is a wildcard, it
171        doesn't matter if the user does not
172        actually link against crtbegin.o; the
173        linker won't look for a file to match a
174        wildcard.  The wildcard also means that it
175        doesn't matter which directory crtbegin.o
176        is in.  */
177     KEEP (*crtbegin.o(.ctors))
178     /* We don't want to include the .ctor section from
179        from the crtend.o file until after the sorted ctors.
180        The .ctor section from the crtend file contains the
181        end of ctors marker and it must be last */
182     KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
183     KEEP (*(SORT(.ctors.*)))
184     KEEP (*(.ctors))
185   }
186    .dtors         :
187   {
188     KEEP (*crtbegin.o(.dtors))
189     KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
190     KEEP (*(SORT(.dtors.*)))
191     KEEP (*(.dtors))
192   }
193   .plt      : { *(.plt) }
194   _gp = ALIGN(16) + 0x7ff0;
195   .got            : { *(.got.plt) *(.got) }
196   .dynamic       : { *(.dynamic) }
197   /* We want the small data sections together, so single-instruction offsets
198      can access them all, and initialized data all before uninitialized, so
199      we can shorten the on-disk segment size.  */
200   .sdata     : 
201   {
202     *(.sdata) 
203     *(.sdata.*)
204     *(.gnu.linkonce.s.*)
205   }
206   _edata = .;
207   PROVIDE (edata = .);
208   __bss_start = .;
209   .sbss      :
210   {
211     PROVIDE (__sbss_start = .);
212     PROVIDE (___sbss_start = .);
213     *(.dynsbss)
214     *(.sbss)
215     *(.sbss.*)
216     *(.gnu.linkonce.sb.*)
217     *(.scommon)
218     PROVIDE (__sbss_end = .);
219     PROVIDE (___sbss_end = .);
220   }
221   .bss       :
222   {
223    *(.dynbss)
224    *(.bss)
225    *(.bss.*)
226    *(.gnu.linkonce.b.*)
227    *(COMMON)
228    /* Align here to ensure that the .bss section occupies space up to
229       _end.  Align after .bss to ensure correct alignment even if the
230       .bss section disappears because there are no input sections.  */
231    . = ALIGN(64 / 8);
232   }
233   . = ALIGN(64 / 8);
234   _end = .;
235   PROVIDE (end = .);
236   /* Stabs debugging sections.  */
237   .stab 0 : { *(.stab) }
238   .stabstr 0 : { *(.stabstr) }
239   .stab.excl 0 : { *(.stab.excl) }
240   .stab.exclstr 0 : { *(.stab.exclstr) }
241   .stab.index 0 : { *(.stab.index) }
242   .stab.indexstr 0 : { *(.stab.indexstr) }
243   .comment 0 : { *(.comment) }
244   /* DWARF debug sections.
245      Symbols in the DWARF debugging sections are relative to the beginning
246      of the section so we begin them at 0.  */
247   /* DWARF 1 */
248   .debug          0 : { *(.debug) }
249   .line           0 : { *(.line) }
250   /* GNU DWARF 1 extensions */
251   .debug_srcinfo  0 : { *(.debug_srcinfo) }
252   .debug_sfnames  0 : { *(.debug_sfnames) }
253   /* DWARF 1.1 and DWARF 2 */
254   .debug_aranges  0 : { *(.debug_aranges) }
255   .debug_pubnames 0 : { *(.debug_pubnames) }
256   /* DWARF 2 */
257   .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
258   .debug_abbrev   0 : { *(.debug_abbrev) }
259   .debug_line     0 : { *(.debug_line) }
260   .debug_frame    0 : { *(.debug_frame) }
261   .debug_str      0 : { *(.debug_str) }
262   .debug_loc      0 : { *(.debug_loc) }
263   .debug_macinfo  0 : { *(.debug_macinfo) }
264   /* SGI/MIPS DWARF 2 extensions */
265   .debug_weaknames 0 : { *(.debug_weaknames) }
266   .debug_funcnames 0 : { *(.debug_funcnames) }
267   .debug_typenames 0 : { *(.debug_typenames) }
268   .debug_varnames  0 : { *(.debug_varnames) }
269   /* These must appear regardless of  .  */