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

TOMOYO Linux Cross Reference
Linux/arch/s390/boot/vmlinux.lds.S

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ 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 #include <asm/vmlinux.lds.h>
  4 #include <asm/thread_info.h>
  5 #include <asm/page.h>
  6 #include <asm/sclp.h>
  7 #include "boot.h"
  8 
  9 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
 10 OUTPUT_ARCH(s390:64-bit)
 11 
 12 ENTRY(startup)
 13 
 14 SECTIONS
 15 {
 16         . = 0;
 17         .ipldata : {
 18                 *(.ipldata)
 19         }
 20         . = IPL_START;
 21         .head.text : {
 22                 _head = . ;
 23                 HEAD_TEXT
 24                 _ehead = . ;
 25         }
 26         . = PARMAREA;
 27         .parmarea : {
 28                 *(.parmarea)
 29         }
 30         .text : {
 31                 _text = .;      /* Text */
 32                 *(.text)
 33                 *(.text.*)
 34                 INIT_TEXT
 35                 _etext = . ;
 36         }
 37         .rodata : {
 38                 _rodata = . ;
 39                 *(.rodata)       /* read-only data */
 40                 *(.rodata.*)
 41                 _erodata = . ;
 42         }
 43         .got : {
 44                 *(.got)
 45         }
 46         NOTES
 47         .data : {
 48                 _data = . ;
 49                 *(.data)
 50                 *(.data.*)
 51                 _edata = . ;
 52         }
 53 
 54         BOOT_DATA
 55         BOOT_DATA_PRESERVED
 56 
 57         /*
 58          * This is the BSS section of the decompressor and not of the decompressed Linux kernel.
 59          * It will consume place in the decompressor's image.
 60          */
 61         . = ALIGN(8);
 62         .bss : {
 63                 _bss = . ;
 64                 *(.bss)
 65                 *(.bss.*)
 66                 *(COMMON)
 67                 /*
 68                  * Stacks for the decompressor
 69                  */
 70                 . = ALIGN(PAGE_SIZE);
 71                 _dump_info_stack_start = .;
 72                 . += PAGE_SIZE;
 73                 _dump_info_stack_end = .;
 74                 . = ALIGN(PAGE_SIZE);
 75                 _stack_start = .;
 76                 . += BOOT_STACK_SIZE;
 77                 _stack_end = .;
 78                 _ebss = .;
 79         }
 80 
 81         /*
 82          * uncompressed image info used by the decompressor it should match
 83          * struct vmlinux_info. It comes from .vmlinux.info section of
 84          * uncompressed vmlinux in a form of info.o
 85          */
 86         . = ALIGN(8);
 87         .vmlinux.info : {
 88                 _vmlinux_info = .;
 89                 *(.vmlinux.info)
 90         }
 91 
 92         .decompressor.syms : {
 93                 . += 1; /* make sure we have \0 before the first entry */
 94                 . = ALIGN(2);
 95                 _decompressor_syms_start = .;
 96                 *(.decompressor.syms)
 97                 _decompressor_syms_end = .;
 98         }
 99 
100         _decompressor_end = .;
101 
102         . = ALIGN(4);
103         .vmlinux.relocs : {
104                 __vmlinux_relocs_64_start = .;
105                 *(.vmlinux.relocs_64)
106                 __vmlinux_relocs_64_end = .;
107         }
108 
109 #ifdef CONFIG_KERNEL_UNCOMPRESSED
110         . = ALIGN(PAGE_SIZE);
111         . += AMODE31_SIZE;              /* .amode31 section */
112         . = ALIGN(1 << 20);             /* _SEGMENT_SIZE */
113 #else
114         . = ALIGN(8);
115 #endif
116         .rodata.compressed : {
117                 _compressed_start = .;
118                 *(.vmlinux.bin.compressed)
119                 _compressed_end = .;
120         }
121 
122 #define SB_TRAILER_SIZE 32
123         /* Trailer needed for Secure Boot */
124         . += SB_TRAILER_SIZE; /* make sure .sb.trailer does not overwrite the previous section */
125         . = ALIGN(4096) - SB_TRAILER_SIZE;
126         .sb.trailer : {
127                 QUAD(0)
128                 QUAD(0)
129                 QUAD(0)
130                 QUAD(0x000000207a49504c)
131         }
132         _end = .;
133 
134         DWARF_DEBUG
135         ELF_DETAILS
136 
137         /*
138          * Make sure that the .got.plt is either completely empty or it
139          * contains only the three reserved double words.
140          */
141         .got.plt : {
142                 *(.got.plt)
143         }
144         ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT entries detected!")
145 
146         /*
147          * Sections that should stay zero sized, which is safer to
148          * explicitly check instead of blindly discarding.
149          */
150         .plt : {
151                 *(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt)
152         }
153         ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
154         .rela.dyn : {
155                 *(.rela.*) *(.rela_*)
156         }
157         ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
158 
159         /* Sections to be discarded */
160         /DISCARD/ : {
161                 COMMON_DISCARDS
162                 *(.eh_frame)
163                 *(__ex_table)
164                 *(*__ksymtab*)
165                 *(___kcrctab*)
166         }
167 }

~ [ 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