score: Cleanup linker script using new macros.
[linux-block.git] / arch / score / kernel / vmlinux.lds.S
CommitLineData
6bc9a396
CL
1/*
2 * arch/score/kernel/vmlinux.lds.S
3 *
4 * Score Processor version.
5 *
6 * Copyright (C) 2009 Sunplus Core Technology Co., Ltd.
7 * Chen Liqin <liqin.chen@sunplusct.com>
8 * Lennox Wu <lennox.wu@sunplusct.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, see the file COPYING, or write
22 * to the Free Software Foundation, Inc.,
23 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 */
25
26#include <asm-generic/vmlinux.lds.h>
eccfbf98
TA
27#include <asm/thread_info.h>
28#include <asm/page.h>
6bc9a396
CL
29
30OUTPUT_ARCH(score)
31ENTRY(_stext)
32
33jiffies = jiffies_64;
34
35SECTIONS
36{
37 . = CONFIG_MEMORY_START + 0x2000;
38 /* read-only */
39 .text : {
40 _text = .; /* Text and read-only data */
41 TEXT_TEXT
42 SCHED_TEXT
43 LOCK_TEXT
44 KPROBES_TEXT
45 *(.text.*)
46 *(.fixup)
47 . = ALIGN (4) ;
48 _etext = .; /* End of text section */
49 }
50
51 . = ALIGN(16);
52 RODATA
53
eccfbf98 54 EXCEPTION_TABLE(16)
6bc9a396 55
eccfbf98 56 RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
6bc9a396
CL
57
58 /* We want the small data sections together, so single-instruction offsets
59 can access them all, and initialized data all before uninitialized, so
60 we can shorten the on-disk segment size. */
61 . = ALIGN(8);
62 .sdata : {
63 *(.sdata)
64 }
6bc9a396
CL
65 _edata = .; /* End of data section */
66
67 /* will be freed after init */
eccfbf98 68 . = ALIGN(PAGE_SIZE); /* Init code and data */
6bc9a396
CL
69 __init_begin = .;
70
eccfbf98
TA
71 INIT_TEXT_SECTION(PAGE_SIZE)
72 INIT_DATA_SECTION(16)
6bc9a396
CL
73
74 /* .exit.text is discarded at runtime, not link time, to deal with
75 * references from .rodata
76 */
77 .exit.text : {
78 EXIT_TEXT
79 }
80 .exit.data : {
81 EXIT_DATA
82 }
eccfbf98 83 . = ALIGN(PAGE_SIZE);
6bc9a396
CL
84 __init_end = .;
85 /* freed after init ends here */
86
eccfbf98 87 BSS_SECTION(0, 0, 0)
6bc9a396
CL
88 _end = .;
89}