alpha: Clean up linker script using new linker script macros.
[linux-block.git] / arch / alpha / kernel / vmlinux.lds.S
CommitLineData
1da177e4 1#include <asm-generic/vmlinux.lds.h>
b2b5d37d 2#include <asm/page.h>
ea12c2ed 3#include <asm/thread_info.h>
1da177e4
LT
4
5OUTPUT_FORMAT("elf64-alpha")
6OUTPUT_ARCH(alpha)
7ENTRY(__start)
caf45dd9 8PHDRS { kernel PT_LOAD; note PT_NOTE; }
1da177e4
LT
9jiffies = jiffies_64;
10SECTIONS
11{
12#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
b2b5d37d 13 . = 0xfffffc0000310000;
1da177e4 14#else
b2b5d37d 15 . = 0xfffffc0001010000;
1da177e4
LT
16#endif
17
b2b5d37d
SR
18 _text = .; /* Text and read-only data */
19 .text : {
92ca5234 20 HEAD_TEXT
b2b5d37d
SR
21 TEXT_TEXT
22 SCHED_TEXT
23 LOCK_TEXT
24 *(.fixup)
25 *(.gnu.warning)
26 } :kernel
27 _etext = .; /* End of text section */
28
51597acf
BB
29 NOTES :kernel :note
30 .dummy : {
31 *(.dummy)
32 } :kernel
33
34 RODATA
9d93f005 35 EXCEPTION_TABLE(16)
b2b5d37d 36
b2b5d37d 37 /* Will be freed after init */
9d93f005
GT
38 __init_begin = ALIGN(PAGE_SIZE);
39 INIT_TEXT_SECTION(PAGE_SIZE)
40 INIT_DATA_SECTION(16)
b2b5d37d 41 PERCPU(PAGE_SIZE)
9d93f005
GT
42 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
43 needed for the THREAD_SIZE aligned init_task gets freed after init */
44 . = ALIGN(THREAD_SIZE);
b2b5d37d
SR
45 __init_end = .;
46 /* Freed after init ends here */
47
b2b5d37d 48 _data = .;
9d93f005 49 RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE)
b2b5d37d
SR
50
51 .got : {
52 *(.got)
53 }
54 .sdata : {
55 *(.sdata)
56 }
57 _edata = .; /* End of data section */
58
9d93f005 59 BSS_SECTION(0, 0, 0)
b2b5d37d
SR
60 _end = .;
61
b2b5d37d
SR
62 .mdebug 0 : {
63 *(.mdebug)
64 }
65 .note 0 : {
66 *(.note)
67 }
68
69 STABS_DEBUG
70 DWARF_DEBUG
023bf6f1
TH
71
72 DISCARDS
1da177e4 73}