projects/linux·blob master · refs

91 lines · 1.7 KiB

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 IRQENTRY_TEXT
32 SOFTIRQENTRY_TEXT
33 *(.fixup)
34 *(.gnu.warning)
35 } :text
36 swapper_pg_dir = SWAPPER_PGD;
37 _etext = .; /* End of text section */
38
39 RO_DATA(4096)
40
41 /* Will be freed after init */
42 __init_begin = ALIGN(PAGE_SIZE);
43 INIT_TEXT_SECTION(PAGE_SIZE)
44 INIT_DATA_SECTION(16)
45 PERCPU_SECTION(L1_CACHE_BYTES)
46 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
47 needed for the THREAD_SIZE aligned init_task gets freed after init */
48 . = ALIGN(THREAD_SIZE);
49 __init_end = .;
50 /* Freed after init ends here */
51
52 _sdata = .; /* Start of rw data section */
53 _data = .;
54 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
55
56 .got : {
57 *(.got)
58 }
59 .sdata : {
60 *(.sdata)
61 }
62 _edata = .; /* End of data section */
63
64 BSS_SECTION(0, 0, 0)
65 _end = .;
66
67 .mdebug 0 : {
68 *(.mdebug)
69 }
70 .note 0 : {
71 *(.note)
72 }
73
74 STABS_DEBUG
75 DWARF_DEBUG
76 MODINFO
77 ELF_DETAILS
78
79 /*
80 * gcc emits .eh_frame for Alpha even with
81 * -fno-asynchronous-unwind-tables, and the kernel has no DWARF
82 * unwinder to consume it. The relocation sections are likewise
83 * useless as the kernel image is not relocatable.
84 */
85 /DISCARD/ : {
86 *(.eh_frame)
87 *(.rela .rela*)
88 }
89
90 DISCARDS
91}