~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/boot/compressed/vmlinux.lds.S

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #include <asm-generic/vmlinux.lds.h>
  3 
  4 OUTPUT_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
 12 OUTPUT_ARCH(i386:x86-64)
 13 ENTRY(startup_64)
 14 #else
 15 OUTPUT_ARCH(i386)
 16 ENTRY(startup_32)
 17 #endif
 18 
 19 SECTIONS
 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 }

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php