xref: /linux/arch/alpha/boot/compressed/vmlinux.lds.S (revision 12d5fc96ebbb3b948861805b32a4c3a96105ccd9)
1/* SPDX-License-Identifier: GPL-2.0 */
2#include <asm-generic/vmlinux.lds.h>
3#include <asm/page.h>
4#include <asm/setup.h>
5
6OUTPUT_FORMAT("elf64-alpha")
7OUTPUT_ARCH(alpha)
8ENTRY(__start)
9
10SECTIONS
11{
12	/*
13	 * Link the stub at the address the real, uncompressed vmlinux has
14	 * always occupied. aboot derives the OSF/1 parameter-page
15	 * (ZERO_PGE) and initial stack (INIT_STACK) addresses from the
16	 * loaded image's own p_vaddr, so a stub linked anywhere else would
17	 * hand the real kernel a parameter page it does not expect.
18	 */
19	. = START_ADDR;
20
21	.head.text : {
22		_head = .;
23		HEAD_TEXT
24		_ehead = .;
25	}
26
27	. = ALIGN(8);
28	.rodata.compressed : {
29		*(.rodata.compressed)
30	}
31
32	. = ALIGN(PAGE_SIZE);
33	.text : {
34		_text = .;
35		*(.text)
36		*(.text.*)
37		_etext = .;
38	}
39	. = ALIGN(8);
40	.rodata : {
41		*(.rodata)
42		*(.rodata.*)
43	}
44	. = ALIGN(8);
45	.data : {
46		*(.data)
47		*(.data.*)
48	}
49	.got : {
50		*(.got)
51	}
52	.sdata : {
53		*(.sdata)
54	}
55	/*
56	 * misc.c decompresses to _ebss, so nothing that the stub still
57	 * needs may be placed after .bss. --orphan-handling=warn keeps a
58	 * new section from silently landing there.
59	 */
60	. = ALIGN(8);
61	.bss : {
62		_bss = .;
63		*(.sbss)
64		*(.scommon)
65		*(.bss)
66		*(.bss.*)
67		*(COMMON)
68		. = ALIGN(8);
69		_ebss = .;
70	}
71
72	STABS_DEBUG
73	DWARF_DEBUG
74	ELF_DETAILS
75
76	DISCARDS
77	/DISCARD/ : {
78		*(.eh_frame)
79		*(.modinfo)
80		*(.note)
81		*(.note.*)
82	}
83}
84