]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - arch/m32r/kernel/vmlinux.lds.S
linker script: throw away .discard section
[mirror_ubuntu-zesty-kernel.git] / arch / m32r / kernel / vmlinux.lds.S
CommitLineData
1da177e4
LT
1/* ld script to make M32R Linux kernel
2 */
3
1da177e4
LT
4#include <asm-generic/vmlinux.lds.h>
5#include <asm/addrspace.h>
6#include <asm/page.h>
7
8OUTPUT_ARCH(m32r)
1da177e4
LT
9#if defined(__LITTLE_ENDIAN__)
10 jiffies = jiffies_64;
11#else
12 jiffies = jiffies_64 + 4;
13#endif
3d60f849
HT
14
15kernel_entry = boot - 0x80000000;
16ENTRY(kernel_entry)
17
1da177e4
LT
18SECTIONS
19{
20 . = CONFIG_MEMORY_START + __PAGE_OFFSET;
21 eit_vector = .;
22
23 . = . + 0x1000;
24 .empty_zero_page : { *(.empty_zero_page) } = 0
25
26 /* read-only */
27 _text = .; /* Text and read-only data */
28 .boot : { *(.boot) } = 0
29 .text : {
34963696 30 HEAD_TEXT
7664709b 31 TEXT_TEXT
1da177e4
LT
32 SCHED_TEXT
33 LOCK_TEXT
34 *(.fixup)
35 *(.gnu.warning)
36 } = 0x9090
37#ifdef CONFIG_SMP
38 . = ALIGN(65536);
39 .eit_vector4 : { *(.eit_vector4) }
40#endif
41 _etext = .; /* End of text section */
42
43 . = ALIGN(16); /* Exception table */
44 __start___ex_table = .;
45 __ex_table : { *(__ex_table) }
46 __stop___ex_table = .;
47
48 RODATA
49
50 /* writeable */
51 .data : { /* Data */
52 *(.spu)
53 *(.spi)
ca967258 54 DATA_DATA
1da177e4
LT
55 CONSTRUCTORS
56 }
57
58 . = ALIGN(4096);
59 __nosave_begin = .;
60 .data_nosave : { *(.data.nosave) }
61 . = ALIGN(4096);
62 __nosave_end = .;
63
1da177e4
LT
64 . = ALIGN(32);
65 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
66
67 _edata = .; /* End of data section */
68
69 . = ALIGN(8192); /* init_task */
70 .data.init_task : { *(.data.init_task) }
71
72 /* will be freed after init */
73 . = ALIGN(4096); /* Init code and data */
74 __init_begin = .;
75 .init.text : {
76 _sinittext = .;
01ba2bdc 77 INIT_TEXT
1da177e4
LT
78 _einittext = .;
79 }
01ba2bdc 80 .init.data : { INIT_DATA }
1da177e4
LT
81 . = ALIGN(16);
82 __setup_start = .;
83 .init.setup : { *(.init.setup) }
84 __setup_end = .;
85 __initcall_start = .;
86 .initcall.init : {
61ce1efe 87 INITCALLS
1da177e4
LT
88 }
89 __initcall_end = .;
90 __con_initcall_start = .;
91 .con_initcall.init : { *(.con_initcall.init) }
92 __con_initcall_end = .;
93 SECURITY_INIT
94 . = ALIGN(4);
95 __alt_instructions = .;
96 .altinstructions : { *(.altinstructions) }
97 __alt_instructions_end = .;
98 .altinstr_replacement : { *(.altinstr_replacement) }
99 /* .exit.text is discard at runtime, not link time, to deal with references
100 from .altinstructions and .eh_frame */
01ba2bdc
SR
101 .exit.text : { EXIT_TEXT }
102 .exit.data : { EXIT_DATA }
67d38229
JPS
103
104#ifdef CONFIG_BLK_DEV_INITRD
1da177e4
LT
105 . = ALIGN(4096);
106 __initramfs_start = .;
107 .init.ramfs : { *(.init.ramfs) }
108 __initramfs_end = .;
67d38229
JPS
109#endif
110
5fb7dc37 111 PERCPU(4096)
1da177e4
LT
112 . = ALIGN(4096);
113 __init_end = .;
114 /* freed after init ends here */
115
116 __bss_start = .; /* BSS */
117 .bss : { *(.bss) }
118 . = ALIGN(4);
119 __bss_stop = .;
120
121 _end = . ;
122
123 /* Sections to be discarded */
124 /DISCARD/ : {
01ba2bdc
SR
125 EXIT_TEXT
126 EXIT_DATA
1da177e4 127 *(.exitcall.exit)
405d967d 128 *(.discard)
1da177e4
LT
129 }
130
131 /* Stabs debugging sections. */
132 .stab 0 : { *(.stab) }
133 .stabstr 0 : { *(.stabstr) }
134 .stab.excl 0 : { *(.stab.excl) }
135 .stab.exclstr 0 : { *(.stab.exclstr) }
136 .stab.index 0 : { *(.stab.index) }
137 .stab.indexstr 0 : { *(.stab.indexstr) }
138 .comment 0 : { *(.comment) }
139}