Merge branch 'master' of git://oak/home/sfr/kernels/iseries/work
[linux-2.6] / arch / ppc / kernel / vmlinux.lds.S
1 #include <asm-generic/vmlinux.lds.h>
2
3 OUTPUT_ARCH(powerpc:common)
4 jiffies = jiffies_64 + 4;
5 SECTIONS
6 {
7   /* Read-only sections, merged into text segment: */
8   . = + SIZEOF_HEADERS;
9   .interp : { *(.interp) }
10   .hash          : { *(.hash)           }
11   .gnu.hash      : { *(.gnu.hash)       }
12   .dynsym        : { *(.dynsym)         }
13   .dynstr        : { *(.dynstr)         }
14   .rel.text      : { *(.rel.text)               }
15   .rela.text     : { *(.rela.text)      }
16   .rel.data      : { *(.rel.data)               }
17   .rela.data     : { *(.rela.data)      }
18   .rel.rodata    : { *(.rel.rodata)     }
19   .rela.rodata   : { *(.rela.rodata)    }
20   .rel.got       : { *(.rel.got)                }
21   .rela.got      : { *(.rela.got)               }
22   .rel.ctors     : { *(.rel.ctors)      }
23   .rela.ctors    : { *(.rela.ctors)     }
24   .rel.dtors     : { *(.rel.dtors)      }
25   .rela.dtors    : { *(.rela.dtors)     }
26   .rel.bss       : { *(.rel.bss)                }
27   .rela.bss      : { *(.rela.bss)               }
28   .rel.plt       : { *(.rel.plt)                }
29   .rela.plt      : { *(.rela.plt)               }
30 /*  .init          : { *(.init) } =0*/
31   .plt : { *(.plt) }
32   .text      :
33   {
34     *(.text)
35     SCHED_TEXT
36     LOCK_TEXT
37     *(.fixup)
38     *(.got1)
39     __got2_start = .;
40     *(.got2)
41     __got2_end = .;
42   }
43   _etext = .;
44   PROVIDE (etext = .);
45
46   RODATA
47   .fini      : { *(.fini)    } =0
48   .ctors     : { *(.ctors)   }
49   .dtors     : { *(.dtors)   }
50
51   .fixup   : { *(.fixup) }
52
53         __ex_table : {
54                 __start___ex_table = .;
55                 *(__ex_table)
56                 __stop___ex_table = .;
57         }
58
59         __bug_table : {
60                 __start___bug_table = .;
61                 *(__bug_table)
62                 __stop___bug_table = .;
63         }
64
65   /* Read-write section, merged into data segment: */
66   . = ALIGN(4096);
67   .data    :
68   {
69     *(.data)
70     *(.data1)
71     *(.sdata)
72     *(.sdata2)
73     *(.got.plt) *(.got)
74     *(.dynamic)
75     CONSTRUCTORS
76   }
77
78   . = ALIGN(4096);
79   __nosave_begin = .;
80   .data_nosave : { *(.data.nosave) }
81   . = ALIGN(4096);
82   __nosave_end = .;
83
84   . = ALIGN(32);
85   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
86
87   _edata  =  .;
88   PROVIDE (edata = .);
89
90   . = ALIGN(8192);
91   .data.init_task : { *(.data.init_task) }
92
93   . = ALIGN(4096);
94   __init_begin = .;
95   .init.text : {
96         _sinittext = .;
97         *(.init.text)
98         _einittext = .;
99   }
100   /* .exit.text is discarded at runtime, not link time,
101      to deal with references from __bug_table */
102   .exit.text : { *(.exit.text) }
103   .init.data : {
104     *(.init.data);
105     __vtop_table_begin = .;
106     *(.vtop_fixup);
107     __vtop_table_end = .;
108     __ptov_table_begin = .;
109     *(.ptov_fixup);
110     __ptov_table_end = .;
111   }
112   . = ALIGN(16);
113   __setup_start = .;
114   .init.setup : { *(.init.setup) }
115   __setup_end = .;
116   __initcall_start = .;
117   .initcall.init : {
118         *(.initcall1.init)
119         *(.initcall2.init)
120         *(.initcall3.init)
121         *(.initcall4.init)
122         *(.initcall5.init)
123         *(.initcall6.init)
124         *(.initcall7.init)
125   }
126   __initcall_end = .;
127
128   __con_initcall_start = .;
129   .con_initcall.init : { *(.con_initcall.init) }
130   __con_initcall_end = .;
131
132   SECURITY_INIT
133
134   __start___ftr_fixup = .;
135   __ftr_fixup : { *(__ftr_fixup) }
136   __stop___ftr_fixup = .;
137
138   . = ALIGN(32);
139   __per_cpu_start = .;
140   .data.percpu  : { *(.data.percpu) }
141   __per_cpu_end = .;
142
143   . = ALIGN(4096);
144   __initramfs_start = .;
145   .init.ramfs : { *(.init.ramfs) }
146   __initramfs_end = .;
147
148   . = ALIGN(4096);
149   __init_end = .;
150
151   . = ALIGN(4096);
152   _sextratext = .;
153   _eextratext = .;
154
155   __bss_start = .;
156   .bss       :
157   {
158    *(.sbss) *(.scommon)
159    *(.dynbss)
160    *(.bss)
161    *(COMMON)
162   }
163   __bss_stop = .;
164
165   _end = . ;
166   PROVIDE (end = .);
167
168   /* Sections to be discarded. */
169   /DISCARD/ : {
170     *(.exitcall.exit)
171     *(.exit.data)
172   }
173 }