This stack check implementation leverages the compiler's profiling (gcc -p)
[linux-2.6.git] / include / asm-um / common.lds.S
1 #include <asm-generic/vmlinux.lds.h>
2
3   .fini      : { *(.fini)    } =0x9090
4   _etext = .;
5   PROVIDE (etext = .);
6
7   . = ALIGN(4096);
8   _sdata = .;
9   PROVIDE (sdata = .);
10
11   . = ALIGN(16);                /* Exception table */
12   __start___ex_table = .;
13   __ex_table : { *(__ex_table) }
14   __stop___ex_table = .;
15
16   RODATA
17
18   .unprotected : { *(.unprotected) }
19   . = ALIGN(4096);
20   PROVIDE (_unprotected_end = .);
21
22   . = ALIGN(4096);
23   __uml_setup_start = .;
24   .uml.setup.init : { *(.uml.setup.init) }
25   __uml_setup_end = .;
26         
27   __uml_help_start = .;
28   .uml.help.init : { *(.uml.help.init) }
29   __uml_help_end = .;
30         
31   __uml_postsetup_start = .;
32   .uml.postsetup.init : { *(.uml.postsetup.init) }
33   __uml_postsetup_end = .;
34         
35   __setup_start = .;
36   .init.setup : { *(.init.setup) }
37   __setup_end = .;
38
39   __start___param = .;
40   __param : { *(__param) }
41   __stop___param = .;
42
43   . = ALIGN(32);
44   __per_cpu_start = . ; 
45   .data.percpu : { *(.data.percpu) }
46   __per_cpu_end = . ;
47         
48   __initcall_start = .;
49   .initcall.init : {
50         *(.initcall1.init) 
51         *(.initcall2.init) 
52         *(.initcall3.init) 
53         *(.initcall4.init) 
54         *(.initcall5.init) 
55         *(.initcall6.init) 
56         *(.initcall7.init)
57   }
58   __initcall_end = .;
59
60   __con_initcall_start = .;
61   .con_initcall.init : { *(.con_initcall.init) }
62   __con_initcall_end = .;
63
64   __uml_initcall_start = .;
65   .uml.initcall.init : { *(.uml.initcall.init) }
66   __uml_initcall_end = .;
67   __init_end = .;
68
69   SECURITY_INIT
70
71   __exitcall_begin = .;
72   .exitcall : { *(.exitcall.exit) }
73   __exitcall_end = .;
74
75   __uml_exitcall_begin = .;
76   .uml.exitcall : { *(.uml.exitcall.exit) }
77   __uml_exitcall_end = .;
78
79   . = ALIGN(4);
80   __alt_instructions = .;
81   .altinstructions : { *(.altinstructions) } 
82   __alt_instructions_end = .; 
83   .altinstr_replacement : { *(.altinstr_replacement) } 
84   /* .exit.text is discard at runtime, not link time, to deal with references
85      from .altinstructions and .eh_frame */
86   .exit.text : { *(.exit.text) }
87   .exit.data : { *(.exit.data) }
88  
89   __preinit_array_start = .;
90   .preinit_array : { *(.preinit_array) }
91   __preinit_array_end = .;
92   __init_array_start = .;
93   .init_array : { *(.init_array) }
94   __init_array_end = .;
95   __fini_array_start = .;
96   .fini_array : { *(.fini_array) }
97   __fini_array_end = .;
98
99    . = ALIGN(4096);
100   __initramfs_start = .;
101   .init.ramfs : { *(.init.ramfs) }
102   __initramfs_end = .;
103
104   /* Sections to be discarded */
105   /DISCARD/ : {
106         *(.exitcall.exit)
107   }
108