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