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