v2.4.8 -> v2.4.8.1
[opensuse:kernel.git] / arch / arm / vmlinux-armv.lds.in
1 /* ld script to make ARM Linux kernel
2  * taken from the i386 version by Russell King
3  * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
4  */
5 OUTPUT_ARCH(arm)
6 ENTRY(stext)
7 SECTIONS
8 {
9         . = TEXTADDR;
10         .init : {                       /* Init code and data           */
11                 _stext = .;
12                 __init_begin = .;
13                         *(.text.init)
14                 __proc_info_begin = .;
15                         *(.proc.info)
16                 __proc_info_end = .;
17                 __arch_info_begin = .;
18                         *(.arch.info)
19                 __arch_info_end = .;
20                 __tagtable_begin = .;
21                         *(.taglist)
22                 __tagtable_end = .;
23                         *(.data.init)
24                 . = ALIGN(16);
25                 __setup_start = .;
26                         *(.setup.init)
27                 __setup_end = .;
28                 __initcall_start = .;
29                         *(.initcall.init)
30                 __initcall_end = .;
31                 . = ALIGN(4096);
32                 __init_end = .;
33         }
34
35         /DISCARD/ : {                   /* Exit code and data           */
36                 *(.text.exit)
37                 *(.data.exit)
38                 *(.exitcall.exit)
39         }
40
41         .text : {                       /* Real text segment            */
42                 _text = .;              /* Text and read-only data      */
43                         *(.text)
44                         *(.fixup)
45                         *(.gnu.warning)
46                         *(.text.lock)   /* out-of-line lock text */
47                         *(.rodata)
48                         *(.rodata.*)
49                         *(.glue_7)
50                         *(.glue_7t)
51                 *(.got)                 /* Global offset table          */
52
53                 _etext = .;             /* End of text section          */
54         }
55
56         .kstrtab : { *(.kstrtab) }
57
58         . = ALIGN(16);
59         __ex_table : {                  /* Exception table              */
60                 __start___ex_table = .;
61                         *(__ex_table)
62                 __stop___ex_table = .;
63         }
64
65         __ksymtab : {                   /* Kernel symbol table          */
66                 __start___ksymtab = .;
67                         *(__ksymtab)
68                 __stop___ksymtab = .;
69         }
70
71         . = ALIGN(8192);
72
73         .data : {
74                 /*
75                  * first, the init task union, aligned
76                  * to an 8192 byte boundary.
77                  */
78                 *(.init.task)
79
80                 /*
81                  * then the cacheline aligned data
82                  */
83                 . = ALIGN(32);
84                 *(.data.cacheline_aligned)
85
86                 /*
87                  * and the usual data section
88                  */
89                 *(.data)
90                 CONSTRUCTORS
91
92                 _edata = .;
93         }
94
95         .bss : {
96                 __bss_start = .;        /* BSS                          */
97                 *(.bss)
98                 *(COMMON)
99                 _end = . ;
100         }
101                                         /* Stabs debugging sections.    */
102         .stab 0 : { *(.stab) }
103         .stabstr 0 : { *(.stabstr) }
104         .stab.excl 0 : { *(.stab.excl) }
105         .stab.exclstr 0 : { *(.stab.exclstr) }
106         .stab.index 0 : { *(.stab.index) }
107         .stab.indexstr 0 : { *(.stab.indexstr) }
108         .comment 0 : { *(.comment) }
109 }