File Index
Files and directories
Sign in
FILE

vmlinux.lds.S

File preview with syntax highlighting.

linux-6.19.14/arch/x86/boot/compressed/vmlinux.lds.S S
  1/* SPDX-License-Identifier: GPL-2.0 */
  2#include <asm-generic/vmlinux.lds.h>
  3
  4OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT)
  5
  6#undef i386
  7
  8#include <asm/cache.h>
  9#include <asm/page_types.h>
 10
 11#ifdef CONFIG_X86_64
 12OUTPUT_ARCH(i386:x86-64)
 13ENTRY(startup_64)
 14#else
 15OUTPUT_ARCH(i386)
 16ENTRY(startup_32)
 17#endif
 18
 19SECTIONS
 20{
 21	/* Be careful parts of head_64.S assume startup_32 is at
 22	 * address 0.
 23	 */
 24	. = 0;
 25	.head.text : {
 26		_head = . ;
 27		HEAD_TEXT
 28		_ehead = . ;
 29	}
 30	.rodata..compressed : {
 31		*(.rodata..compressed)
 32	}
 33	.text :	{
 34		_text = .; 	/* Text */
 35		*(.text)
 36		*(.text.*)
 37		*(.noinstr.text)
 38		_etext = . ;
 39	}
 40	.rodata : {
 41		_rodata = . ;
 42		*(.rodata)	 /* read-only data */
 43		*(.rodata.*)
 44		_erodata = . ;
 45	}
 46#ifdef CONFIG_EFI_SBAT
 47	.sbat : ALIGN(0x1000) {
 48		_sbat = . ;
 49		*(.sbat)
 50		_esbat = ALIGN(0x1000);
 51		. = _esbat;
 52	}
 53#endif
 54	.data :	ALIGN(0x1000) {
 55		_data = . ;
 56		*(.data)
 57		*(.data.*)
 58
 59		/* Add 4 bytes of extra space for the obsolete CRC-32 checksum */
 60		. = ALIGN(. + 4, 0x200);
 61		_edata = . ;
 62	}
 63	. = ALIGN(L1_CACHE_BYTES);
 64	.bss : {
 65		_bss = . ;
 66		*(.bss)
 67		*(.bss.*)
 68		*(COMMON)
 69		. = ALIGN(8);	/* For convenience during zeroing */
 70		_ebss = .;
 71	}
 72#ifdef CONFIG_X86_64
 73       . = ALIGN(PAGE_SIZE);
 74       .pgtable : {
 75		_pgtable = . ;
 76		*(.pgtable)
 77		_epgtable = . ;
 78	}
 79#endif
 80	. = ALIGN(PAGE_SIZE);	/* keep ZO size page aligned */
 81	_end = .;
 82
 83	STABS_DEBUG
 84	DWARF_DEBUG
 85	ELF_DETAILS
 86
 87	DISCARDS
 88	/DISCARD/ : {
 89		*(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss)
 90		*(.hash) *(.gnu.hash)
 91		*(.note.*) *(.modinfo)
 92	}
 93
 94	.got.plt (INFO) : {
 95		*(.got.plt)
 96	}
 97	ASSERT(SIZEOF(.got.plt) == 0 ||
 98#ifdef CONFIG_X86_64
 99	       SIZEOF(.got.plt) == 0x18,
100#else
101	       SIZEOF(.got.plt) == 0xc,
102#endif
103	       "Unexpected GOT/PLT entries detected!")
104
105	/*
106	 * Sections that should stay zero sized, which is safer to
107	 * explicitly check instead of blindly discarding.
108	 */
109	.got : {
110		*(.got)
111	}
112	ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
113
114	.plt : {
115		*(.plt) *(.plt.*)
116	}
117	ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
118
119	.rel.dyn : {
120		*(.rel.*) *(.rel_*)
121	}
122	ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) detected!")
123
124	.rela.dyn : {
125		*(.rela.*) *(.rela_*)
126	}
127	ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
128}
~/ Read-only file preview.