Linux Audio

Check our new training course

Loading...
v6.2
  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		_etext = . ;
 38	}
 39	.rodata : {
 40		_rodata = . ;
 41		*(.rodata)	 /* read-only data */
 42		*(.rodata.*)
 43		_erodata = . ;
 44	}
 45	.data :	{
 46		_data = . ;
 47		*(.data)
 48		*(.data.*)
 49		*(.bss.efistub)
 
 
 50		_edata = . ;
 51	}
 52	. = ALIGN(L1_CACHE_BYTES);
 53	.bss : {
 54		_bss = . ;
 55		*(.bss)
 56		*(.bss.*)
 57		*(COMMON)
 58		. = ALIGN(8);	/* For convenience during zeroing */
 59		_ebss = .;
 60	}
 61#ifdef CONFIG_X86_64
 62       . = ALIGN(PAGE_SIZE);
 63       .pgtable : {
 64		_pgtable = . ;
 65		*(.pgtable)
 66		_epgtable = . ;
 67	}
 68#endif
 69	. = ALIGN(PAGE_SIZE);	/* keep ZO size page aligned */
 70	_end = .;
 71
 72	STABS_DEBUG
 73	DWARF_DEBUG
 74	ELF_DETAILS
 75
 76	DISCARDS
 77	/DISCARD/ : {
 78		*(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss)
 79		*(.hash) *(.gnu.hash)
 80		*(.note.*)
 81	}
 82
 83	.got.plt (INFO) : {
 84		*(.got.plt)
 85	}
 86	ASSERT(SIZEOF(.got.plt) == 0 ||
 87#ifdef CONFIG_X86_64
 88	       SIZEOF(.got.plt) == 0x18,
 89#else
 90	       SIZEOF(.got.plt) == 0xc,
 91#endif
 92	       "Unexpected GOT/PLT entries detected!")
 93
 94	/*
 95	 * Sections that should stay zero sized, which is safer to
 96	 * explicitly check instead of blindly discarding.
 97	 */
 98	.got : {
 99		*(.got)
100	}
101	ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
102
103	.plt : {
104		*(.plt) *(.plt.*)
105	}
106	ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
107
108	.rel.dyn : {
109		*(.rel.*) *(.rel_*)
110	}
111	ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) detected!")
112
113	.rela.dyn : {
114		*(.rela.*) *(.rela_*)
115	}
116	ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
117}
v6.8
  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	.data :	ALIGN(0x1000) {
 47		_data = . ;
 48		*(.data)
 49		*(.data.*)
 50
 51		/* Add 4 bytes of extra space for a CRC-32 checksum */
 52		. = ALIGN(. + 4, 0x200);
 53		_edata = . ;
 54	}
 55	. = ALIGN(L1_CACHE_BYTES);
 56	.bss : {
 57		_bss = . ;
 58		*(.bss)
 59		*(.bss.*)
 60		*(COMMON)
 61		. = ALIGN(8);	/* For convenience during zeroing */
 62		_ebss = .;
 63	}
 64#ifdef CONFIG_X86_64
 65       . = ALIGN(PAGE_SIZE);
 66       .pgtable : {
 67		_pgtable = . ;
 68		*(.pgtable)
 69		_epgtable = . ;
 70	}
 71#endif
 72	. = ALIGN(PAGE_SIZE);	/* keep ZO size page aligned */
 73	_end = .;
 74
 75	STABS_DEBUG
 76	DWARF_DEBUG
 77	ELF_DETAILS
 78
 79	DISCARDS
 80	/DISCARD/ : {
 81		*(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss)
 82		*(.hash) *(.gnu.hash)
 83		*(.note.*)
 84	}
 85
 86	.got.plt (INFO) : {
 87		*(.got.plt)
 88	}
 89	ASSERT(SIZEOF(.got.plt) == 0 ||
 90#ifdef CONFIG_X86_64
 91	       SIZEOF(.got.plt) == 0x18,
 92#else
 93	       SIZEOF(.got.plt) == 0xc,
 94#endif
 95	       "Unexpected GOT/PLT entries detected!")
 96
 97	/*
 98	 * Sections that should stay zero sized, which is safer to
 99	 * explicitly check instead of blindly discarding.
100	 */
101	.got : {
102		*(.got)
103	}
104	ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
105
106	.plt : {
107		*(.plt) *(.plt.*)
108	}
109	ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
110
111	.rel.dyn : {
112		*(.rel.*) *(.rel_*)
113	}
114	ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) detected!")
115
116	.rela.dyn : {
117		*(.rela.*) *(.rela_*)
118	}
119	ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
120}