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

source code of linux/arch/alpha/kernel/vmlinux.lds.S