Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[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     TEXT_TEXT
36     SCHED_TEXT
37     LOCK_TEXT
38     *(.fixup)
39     *(.got1)
40     __got2_start = .;
41     *(.got2)
42     __got2_end = .;
43   }
44   _etext = .;
45   PROVIDE (etext = .);
46
47   RODATA
48   .fini      : { *(.fini)    } =0
49   .ctors     : { *(.ctors)   }
50   .dtors     : { *(.dtors)   }
51
52   .fixup   : { *(.fixup) }
53
54         __ex_table : {
55                 __start___ex_table = .;
56                 *(__ex_table)
57                 __stop___ex_table = .;
58         }
59
60         __bug_table : {
61                 __start___bug_table = .;
62                 *(__bug_table)
63                 __stop___bug_table = .;
64         }
65
66   /* Read-write section, merged into data segment: */
67   . = ALIGN(4096);
68   .data    :
69   {
70     DATA_DATA
71     *(.data1)
72     *(.sdata)
73     *(.sdata2)
74     *(.got.plt) *(.got)
75     *(.dynamic)
76     CONSTRUCTORS
77   }
78
79   . = ALIGN(4096);
80   __nosave_begin = .;
81   .data_nosave : { *(.data.nosave) }
82   . = ALIGN(4096);
83   __nosave_end = .;
84
85   . = ALIGN(32);
86   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
87
88   _edata  =  .;
89   PROVIDE (edata = .);
90
91   . = ALIGN(8192);
92   .data.init_task : { *(.data.init_task) }
93
94   NOTES
95
96   . = ALIGN(4096);
97   __init_begin = .;
98   .init.text : {
99         _sinittext = .;
100         INIT_TEXT
101         _einittext = .;
102   }
103   /* .exit.text is discarded at runtime, not link time,
104      to deal with references from __bug_table */
105   .exit.text : { EXIT_TEXT }
106   .init.data : {
107     INIT_DATA
108     __vtop_table_begin = .;
109     *(.vtop_fixup);
110     __vtop_table_end = .;
111     __ptov_table_begin = .;
112     *(.ptov_fixup);
113     __ptov_table_end = .;
114   }
115   . = ALIGN(16);
116   __setup_start = .;
117   .init.setup : { *(.init.setup) }
118   __setup_end = .;
119   __initcall_start = .;
120   .initcall.init : {
121         INITCALLS
122   }
123   __initcall_end = .;
124
125   __con_initcall_start = .;
126   .con_initcall.init : { *(.con_initcall.init) }
127   __con_initcall_end = .;
128
129   SECURITY_INIT
130
131   __start___ftr_fixup = .;
132   __ftr_fixup : { *(__ftr_fixup) }
133   __stop___ftr_fixup = .;
134
135   PERCPU(4096)
136
137 #ifdef CONFIG_BLK_DEV_INITRD
138   . = ALIGN(4096);
139   __initramfs_start = .;
140   .init.ramfs : { *(.init.ramfs) }
141   __initramfs_end = .;
142 #endif
143
144   . = ALIGN(4096);
145   __init_end = .;
146   __bss_start = .;
147   .bss       :
148   {
149    *(.sbss) *(.scommon)
150    *(.dynbss)
151    *(.bss)
152    *(COMMON)
153   }
154   __bss_stop = .;
155
156   _end = . ;
157   PROVIDE (end = .);
158
159   /* Sections to be discarded. */
160   /DISCARD/ : {
161     *(.exitcall.exit)
162     EXIT_DATA
163   }
164 }