blob: 003ef4c02585a3eaba223f765a5623056c1ab9f1 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <asm-generic/vmlinux.lds.h>
Sam Ravnborgde078ef2009-09-25 19:53:43 +02002#include <asm/thread_info.h>
Sam Ravnborgb2b5d372007-10-16 01:26:35 -07003#include <asm/page.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
5OUTPUT_FORMAT("elf64-alpha")
6OUTPUT_ARCH(alpha)
7ENTRY(__start)
Roland McGrathcaf45dd2007-07-19 01:48:37 -07008PHDRS { kernel PT_LOAD; note PT_NOTE; }
Linus Torvalds1da177e2005-04-16 15:20:36 -07009jiffies = jiffies_64;
10SECTIONS
11{
12#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070013 . = 0xfffffc0000310000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070014#else
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070015 . = 0xfffffc0001010000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#endif
17
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070018 _text = .; /* Text and read-only data */
19 .text : {
Tim Abbott92ca5232009-04-25 22:10:58 -040020 HEAD_TEXT
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070021 TEXT_TEXT
22 SCHED_TEXT
23 LOCK_TEXT
24 *(.fixup)
25 *(.gnu.warning)
26 } :kernel
27 _etext = .; /* End of text section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070028
Bastian Blank51597ac2008-07-04 10:00:00 -070029 NOTES :kernel :note
30 .dummy : {
31 *(.dummy)
32 } :kernel
33
34 RODATA
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040035 EXCEPTION_TABLE(16)
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070037 /* Will be freed after init */
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040038 __init_begin = ALIGN(PAGE_SIZE);
39 INIT_TEXT_SECTION(PAGE_SIZE)
40 INIT_DATA_SECTION(16)
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070041 PERCPU(PAGE_SIZE)
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040042 /* 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);
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070045 __init_end = .;
46 /* Freed after init ends here */
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070048 _data = .;
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040049 RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE)
Linus Torvalds1da177e2005-04-16 15:20:36 -070050
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070051 .got : {
52 *(.got)
53 }
54 .sdata : {
55 *(.sdata)
56 }
57 _edata = .; /* End of data section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070058
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040059 BSS_SECTION(0, 0, 0)
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070060 _end = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070061
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070062 .mdebug 0 : {
63 *(.mdebug)
64 }
65 .note 0 : {
66 *(.note)
67 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070068
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070069 STABS_DEBUG
70 DWARF_DEBUG
Tejun Heo023bf6f2009-07-09 11:27:40 +090071
72 DISCARDS
Linus Torvalds1da177e2005-04-16 15:20:36 -070073}