aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorTim Abbott <tabbott@ksplice.com>2009-09-18 16:32:49 -0400
committerHirokazu Takata <takata@linux-m32r.org>2009-09-22 11:29:40 -0400
commit85233c43f7fece10a3ea8ed34f0d546b8dd3a435 (patch)
tree71038c0278a9d8f834f39764ba2813f40803ec1a /arch/m32r/kernel/vmlinux.lds.S
parent743486dff1d03eb4a67bd75402699629f70cd5b4 (diff)
m32r: Cleanup linker script using new linker script macros.
This patch is largely a straightforward conversion. One thing to note is that the new macros use fewer separate output sections than the old code; this should have no functional impact but is relevant for people objdumping vmlinux files. Also note that it moves the .data.init_task output sections inside _edata. Signed-off-by: Tim Abbott <tabbott@ksplice.com> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Diffstat (limited to 'arch/m32r/kernel/vmlinux.lds.S')
-rw-r--r--arch/m32r/kernel/vmlinux.lds.S67
1 files changed, 9 insertions, 58 deletions
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index aadb24eacf08..8ceb6181d805 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -4,6 +4,7 @@
4#include <asm-generic/vmlinux.lds.h> 4#include <asm-generic/vmlinux.lds.h>
5#include <asm/addrspace.h> 5#include <asm/addrspace.h>
6#include <asm/page.h> 6#include <asm/page.h>
7#include <asm/thread_info.h>
7 8
8OUTPUT_ARCH(m32r) 9OUTPUT_ARCH(m32r)
9#if defined(__LITTLE_ENDIAN__) 10#if defined(__LITTLE_ENDIAN__)
@@ -40,72 +41,22 @@ SECTIONS
40#endif 41#endif
41 _etext = .; /* End of text section */ 42 _etext = .; /* End of text section */
42 43
43 . = ALIGN(16); /* Exception table */ 44 EXCEPTION_TABLE(16)
44 __start___ex_table = .;
45 __ex_table : { *(__ex_table) }
46 __stop___ex_table = .;
47
48 RODATA 45 RODATA
49 46 RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
50 /* writeable */
51 .data : { /* Data */
52 DATA_DATA
53 CONSTRUCTORS
54 }
55
56 . = ALIGN(4096);
57 __nosave_begin = .;
58 .data_nosave : { *(.data.nosave) }
59 . = ALIGN(4096);
60 __nosave_end = .;
61
62 . = ALIGN(32);
63 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
64
65 _edata = .; /* End of data section */ 47 _edata = .; /* End of data section */
66 48
67 . = ALIGN(8192); /* init_task */
68 .data.init_task : { *(.data.init_task) }
69
70 /* will be freed after init */ 49 /* will be freed after init */
71 . = ALIGN(4096); /* Init code and data */ 50 . = ALIGN(PAGE_SIZE); /* Init code and data */
72 __init_begin = .; 51 __init_begin = .;
73 .init.text : { 52 INIT_TEXT_SECTION(PAGE_SIZE)
74 _sinittext = .; 53 INIT_DATA_SECTION(16)
75 INIT_TEXT 54 PERCPU(PAGE_SIZE)
76 _einittext = .; 55 . = ALIGN(PAGE_SIZE);
77 }
78 .init.data : { INIT_DATA }
79 . = ALIGN(16);
80 __setup_start = .;
81 .init.setup : { *(.init.setup) }
82 __setup_end = .;
83 __initcall_start = .;
84 .initcall.init : {
85 INITCALLS
86 }
87 __initcall_end = .;
88 __con_initcall_start = .;
89 .con_initcall.init : { *(.con_initcall.init) }
90 __con_initcall_end = .;
91 SECURITY_INIT
92
93#ifdef CONFIG_BLK_DEV_INITRD
94 . = ALIGN(4096);
95 __initramfs_start = .;
96 .init.ramfs : { *(.init.ramfs) }
97 __initramfs_end = .;
98#endif
99
100 PERCPU(4096)
101 . = ALIGN(4096);
102 __init_end = .; 56 __init_end = .;
103 /* freed after init ends here */ 57 /* freed after init ends here */
104 58
105 __bss_start = .; /* BSS */ 59 BSS_SECTION(0, 0, 4)
106 .bss : { *(.bss) }
107 . = ALIGN(4);
108 __bss_stop = .;
109 60
110 _end = . ; 61 _end = . ;
111 62