blob: 3d890a98a08ba139f8d234755512fdb97f0fe51e [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>
Tejun Heo0f06c062011-01-25 14:27:38 +01003#include <asm/cache.h>
Sam Ravnborgb2b5d372007-10-16 01:26:35 -07004#include <asm/page.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005
6OUTPUT_FORMAT("elf64-alpha")
7OUTPUT_ARCH(alpha)
8ENTRY(__start)
Roland McGrathcaf45dd2007-07-19 01:48:37 -07009PHDRS { kernel PT_LOAD; note PT_NOTE; }
Linus Torvalds1da177e2005-04-16 15:20:36 -070010jiffies = jiffies_64;
11SECTIONS
12{
13#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070014 . = 0xfffffc0000310000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015#else
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070016 . = 0xfffffc0001010000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070017#endif
18
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070019 _text = .; /* Text and read-only data */
20 .text : {
Tim Abbott92ca5232009-04-25 22:10:58 -040021 HEAD_TEXT
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070022 TEXT_TEXT
23 SCHED_TEXT
24 LOCK_TEXT
25 *(.fixup)
26 *(.gnu.warning)
27 } :kernel
28 _etext = .; /* End of text section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
Bastian Blank51597ac2008-07-04 10:00:00 -070030 NOTES :kernel :note
31 .dummy : {
32 *(.dummy)
33 } :kernel
34
35 RODATA
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040036 EXCEPTION_TABLE(16)
Linus Torvalds1da177e2005-04-16 15:20:36 -070037
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070038 /* Will be freed after init */
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040039 __init_begin = ALIGN(PAGE_SIZE);
40 INIT_TEXT_SECTION(PAGE_SIZE)
41 INIT_DATA_SECTION(16)
Tejun Heo0f06c062011-01-25 14:27:38 +010042 PERCPU(L1_CACHE_BYTES, PAGE_SIZE)
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040043 /* 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);
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070046 __init_end = .;
47 /* Freed after init ends here */
Linus Torvalds1da177e2005-04-16 15:20:36 -070048
Steven Rostedta2d063a2011-05-19 21:34:58 -040049 _sdata = .; /* Start of rw data section */
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070050 _data = .;
Tejun Heo0f06c062011-01-25 14:27:38 +010051 RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
Linus Torvalds1da177e2005-04-16 15:20:36 -070052
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070053 .got : {
54 *(.got)
55 }
56 .sdata : {
57 *(.sdata)
58 }
59 _edata = .; /* End of data section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070060
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040061 BSS_SECTION(0, 0, 0)
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070062 _end = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070063
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070064 .mdebug 0 : {
65 *(.mdebug)
66 }
67 .note 0 : {
68 *(.note)
69 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070070
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070071 STABS_DEBUG
72 DWARF_DEBUG
Tejun Heo023bf6f2009-07-09 11:27:40 +090073
74 DISCARDS
Linus Torvalds1da177e2005-04-16 15:20:36 -070075}