Move primary cache code to libminixfs.
[minix.git] / libexec / ld.elf_so / arch / powerpc / ld.so.script
blob0ca2300f7818dceffdc3654caae750ec4bc4058c
1 OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
2               "elf32-powerpc")
3 OUTPUT_ARCH(powerpc)
4 ENTRY(_start)
5 /* Do we need any of these for elf?
6    __DYNAMIC = 0;    */
7 PROVIDE (__stack = 0); PROVIDE (___stack = 0);
8 SECTIONS
10   /* Read-only sections, merged into text segment: */
11   . = 0 + SIZEOF_HEADERS;
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   } =0
130   .text      :
131   {
132     *(.text)
133     *(.text.*)
134     *(.stub)
135     /* .gnu.warning sections are handled specially by elf32.em.  */
136     *(.gnu.warning)
137     *(.gnu.linkonce.t.*)
138   } =0
139   .fini      :
140   {
141     KEEP (*(.fini))
142   } =0
143   PROVIDE (__etext = .);
144   PROVIDE (_etext = .);
145   PROVIDE (etext = .);
146   .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) }
147   .rodata1   : { *(.rodata1) }
148   /* Adjust the address for the data segment.  We want to adjust up to
149      the same address within the page on the next page up.  */
150   . = ALIGN(8);
151   .data    :
152   {
153     *(.data)
154     *(.data.*)
155     *(.gnu.linkonce.d.*)
156     SORT(CONSTRUCTORS)
157   }
158   .data1   : { *(.data1) }
159   .eh_frame : { KEEP (*(.eh_frame)) }
160   .gcc_except_table : { *(.gcc_except_table) }
161   .fixup        : { *(.fixup) }
162   .got1         : { *(.got1) }
163   .got2         : { *(.got2) }
164   .ctors   : 
165   {
166     /* gcc uses crtbegin.o to find the start of
167        the constructors, so we make sure it is
168        first.  Because this is a wildcard, it
169        doesn't matter if the user does not
170        actually link against crtbegin.o; the
171        linker won't look for a file to match a
172        wildcard.  The wildcard also means that it
173        doesn't matter which directory crtbegin.o
174        is in.  */
175     KEEP (*crtbegin.o(.ctors))
176     /* We don't want to include the .ctor section from
177        from the crtend.o file until after the sorted ctors.
178        The .ctor section from the crtend file contains the
179        end of ctors marker and it must be last */
180     KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
181     KEEP (*(SORT(.ctors.*)))
182     KEEP (*(.ctors))
183   }
184    .dtors         :
185   {
186     KEEP (*crtbegin.o(.dtors))
187     KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
188     KEEP (*(SORT(.dtors.*)))
189     KEEP (*(.dtors))
190   }
191   .got            : { *(.got.plt) *(.got) }
192   PROVIDE (_GOT_END_ = .);
193   .sdata2   : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) }
194   .sbss2   : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) }
195   .dynamic       : { *(.dynamic) }
196   /* We want the small data sections together, so single-instruction offsets
197      can access them all, and initialized data all before uninitialized, so
198      we can shorten the on-disk segment size.  */
199   .sdata     : 
200   {
201     *(.sdata) 
202     *(.sdata.*)
203     *(.gnu.linkonce.s.*)
204   }
205   _edata = .;
206   PROVIDE (edata = .);
207   __bss_start = .;
208   .sbss      :
209   {
210     PROVIDE (__sbss_start = .);
211     PROVIDE (___sbss_start = .);
212     *(.dynsbss)
213     *(.sbss)
214     *(.sbss.*)
215     *(.gnu.linkonce.sb.*)
216     *(.scommon)
217     PROVIDE (__sbss_end = .);
218     PROVIDE (___sbss_end = .);
219   }
220   .plt      : { *(.plt) }
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(8);
232   }
233   . = ALIGN(8);
234   _end = .;
235   __end = .;
236   PROVIDE (end = .);
237   /* Stabs debugging sections.  */
238   .stab 0 : { *(.stab) }
239   .stabstr 0 : { *(.stabstr) }
240   .stab.excl 0 : { *(.stab.excl) }
241   .stab.exclstr 0 : { *(.stab.exclstr) }
242   .stab.index 0 : { *(.stab.index) }
243   .stab.indexstr 0 : { *(.stab.indexstr) }
244   .comment 0 : { *(.comment) }
245   /* DWARF debug sections.
246      Symbols in the DWARF debugging sections are relative to the beginning
247      of the section so we begin them at 0.  */
248   /* DWARF 1 */
249   .debug          0 : { *(.debug) }
250   .line           0 : { *(.line) }
251   /* GNU DWARF 1 extensions */
252   .debug_srcinfo  0 : { *(.debug_srcinfo) }
253   .debug_sfnames  0 : { *(.debug_sfnames) }
254   /* DWARF 1.1 and DWARF 2 */
255   .debug_aranges  0 : { *(.debug_aranges) }
256   .debug_pubnames 0 : { *(.debug_pubnames) }
257   /* DWARF 2 */
258   .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
259   .debug_abbrev   0 : { *(.debug_abbrev) }
260   .debug_line     0 : { *(.debug_line) }
261   .debug_frame    0 : { *(.debug_frame) }
262   .debug_str      0 : { *(.debug_str) }
263   .debug_loc      0 : { *(.debug_loc) }
264   .debug_macinfo  0 : { *(.debug_macinfo) }
265   /* SGI/MIPS DWARF 2 extensions */
266   .debug_weaknames 0 : { *(.debug_weaknames) }
267   .debug_funcnames 0 : { *(.debug_funcnames) }
268   .debug_typenames 0 : { *(.debug_typenames) }
269   .debug_varnames  0 : { *(.debug_varnames) }
270   /* These must appear regardless of  .  */