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