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

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

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/s390/kernel/vmlinux.lds.S (Version linux-6.12-rc7) and /arch/m68k/kernel/vmlinux.lds.S (Version linux-2.4.37.11)


  1 /* SPDX-License-Identifier: GPL-2.0 */            
  2 /* ld script to make s390 Linux kernel            
  3  * Written by Martin Schwidefsky (schwidefsky@    
  4  */                                               
  5                                                   
  6 #include <asm/thread_info.h>                      
  7 #include <asm/page.h>                             
  8 #include <asm/ftrace.lds.h>                       
  9                                                   
 10 /*                                                
 11  * Put .bss..swapper_pg_dir as the first thing    
 12  * make sure it has 16k alignment.                
 13  */                                               
 14 #define BSS_FIRST_SECTIONS *(.bss..swapper_pg_    
 15                            *(.bss..invalid_pg_    
 16                                                   
 17 #define RO_EXCEPTION_TABLE_ALIGN        16        
 18                                                   
 19 /* Handle ro_after_init data on our own. */       
 20 #define RO_AFTER_INIT_DATA                        
 21                                                   
 22 #define RUNTIME_DISCARD_EXIT                      
 23                                                   
 24 #define EMITS_PT_NOTE                             
 25                                                   
 26 #include <asm-generic/vmlinux.lds.h>              
 27 #include <asm/vmlinux.lds.h>                      
 28                                                   
 29 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf    
 30 OUTPUT_ARCH(s390:64-bit)                          
 31 ENTRY(startup_continue)                           
 32 jiffies = jiffies_64;                             
 33                                                   
 34 PHDRS {                                           
 35         text PT_LOAD FLAGS(5);  /* R_E */         
 36         data PT_LOAD FLAGS(7);  /* RWE */         
 37         note PT_NOTE FLAGS(0);  /* ___ */         
 38 }                                                 
 39                                                   
 40 SECTIONS                                          
 41 {                                                 
 42         . = TEXT_OFFSET;                          
 43         .text : {                                 
 44                 _stext = .;             /* Sta    
 45                 _text = .;              /* Tex    
 46                 HEAD_TEXT                         
 47                 TEXT_TEXT                         
 48                 SCHED_TEXT                        
 49                 LOCK_TEXT                         
 50                 KPROBES_TEXT                      
 51                 IRQENTRY_TEXT                     
 52                 SOFTIRQENTRY_TEXT                 
 53                 FTRACE_HOTPATCH_TRAMPOLINES_TE    
 54                 *(.text.*_indirect_*)             
 55                 *(.fixup)                         
 56                 *(.gnu.warning)                   
 57                 . = ALIGN(PAGE_SIZE);             
 58                 _etext = .;             /* End    
 59         } :text = 0x0700                          
 60                                                   
 61         RO_DATA(PAGE_SIZE)                        
 62                                                   
 63         . = ALIGN(PAGE_SIZE);                     
 64         _sdata = .;             /* Start of da    
 65                                                   
 66         . = ALIGN(PAGE_SIZE);                     
 67         __start_ro_after_init = .;                
 68         .data..ro_after_init : {                  
 69                  *(.data..ro_after_init)          
 70                 JUMP_TABLE_DATA                   
 71         } :data                                   
 72         . = ALIGN(PAGE_SIZE);                     
 73         __end_ro_after_init = .;                  
 74                                                   
 75         .data.rel.ro : {                          
 76                 *(.data.rel.ro .data.rel.ro.*)    
 77         }                                         
 78         .got : {                                  
 79                 __got_start = .;                  
 80                 *(.got)                           
 81                 __got_end = .;                    
 82         }                                         
 83                                                   
 84         RW_DATA(0x100, PAGE_SIZE, THREAD_SIZE)    
 85         .data.rel : {                             
 86                 *(.data.rel*)                     
 87         }                                         
 88         BOOT_DATA_PRESERVED                       
 89                                                   
 90         . = ALIGN(8);                             
 91         .amode31.refs : {                         
 92                 _start_amode31_refs = .;          
 93                 *(.amode31.refs)                  
 94                 _end_amode31_refs = .;            
 95         }                                         
 96                                                   
 97         . = ALIGN(PAGE_SIZE);                     
 98         _edata = .;             /* End of data    
 99                                                   
100         /* will be freed after init */            
101         . = ALIGN(PAGE_SIZE);   /* Init code a    
102         __init_begin = .;                         
103                                                   
104         . = ALIGN(PAGE_SIZE);                     
105         .init.text : AT(ADDR(.init.text) - LOA    
106                 _sinittext = .;                   
107                 INIT_TEXT                         
108                 . = ALIGN(PAGE_SIZE);             
109                 _einittext = .;                   
110         }                                         
111                                                   
112         /*                                        
113          * .exit.text is discarded at runtime,    
114          * to deal with references from __bug_    
115         */                                        
116         .exit.text : {                            
117                 EXIT_TEXT                         
118         }                                         
119                                                   
120         .exit.data : {                            
121                 EXIT_DATA                         
122         }                                         
123                                                   
124         /*                                        
125          * struct alt_inst entries. From the h    
126          * "Alternative instructions for diffe    
127          * Think locking instructions on spinl    
128          * Note, that it is a part of __init r    
129          */                                       
130         . = ALIGN(8);                             
131         .altinstructions : {                      
132                 __alt_instructions = .;           
133                 *(.altinstructions)               
134                 __alt_instructions_end = .;       
135         }                                         
136                                                   
137         /*                                        
138          * And here are the replacement instru    
139          * them as binary blobs. The .altinstr    
140          * get the address and the length of t    
141          * Note, that it is a part of __init r    
142          */                                       
143         .altinstr_replacement : {                 
144                 *(.altinstr_replacement)          
145         }                                         
146                                                   
147         /*                                        
148          * Table with the patch locations to u    
149         */                                        
150         . = ALIGN(4);                             
151         .nospec_call_table : {                    
152                 __nospec_call_start = . ;         
153                 *(.s390_indirect*)                
154                 __nospec_call_end = . ;           
155         }                                         
156         .nospec_return_table : {                  
157                 __nospec_return_start = . ;       
158                 *(.s390_return*)                  
159                 __nospec_return_end = . ;         
160         }                                         
161                                                   
162         BOOT_DATA                                 
163                                                   
164         /*                                        
165          * .amode31 section for code, data, ex    
166          * below 2 GB, even when the kernel is    
167          */                                       
168         . = ALIGN(PAGE_SIZE);                     
169         _samode31 = .;                            
170         .amode31.text : {                         
171                 _stext_amode31 = .;               
172                 *(.amode31.text)                  
173                 *(.amode31.text.*_indirect_*)     
174                 . = ALIGN(PAGE_SIZE);             
175                 _etext_amode31 = .;               
176         }                                         
177         . = ALIGN(16);                            
178         .amode31.ex_table : {                     
179                 _start_amode31_ex_table = .;      
180                 KEEP(*(.amode31.ex_table))        
181                 _stop_amode31_ex_table = .;       
182         }                                         
183         . = ALIGN(PAGE_SIZE);                     
184         .amode31.data : {                         
185                 *(.amode31.data)                  
186         }                                         
187         . = _samode31 + AMODE31_SIZE;             
188         _eamode31 = .;                            
189                                                   
190         /* early.c uses stsi, which requires p    
191         . = ALIGN(PAGE_SIZE);                     
192         INIT_DATA_SECTION(0x100)                  
193                                                   
194         RUNTIME_CONST_VARIABLES                   
195                                                   
196         PERCPU_SECTION(0x100)                     
197                                                   
198         . = ALIGN(PAGE_SIZE);                     
199         __init_end = .;         /* freed after    
200                                                   
201         BSS_SECTION(PAGE_SIZE, 4 * PAGE_SIZE,     
202                                                   
203         . = ALIGN(PAGE_SIZE);                     
204         _end = . ;                                
205                                                   
206         /*                                        
207          * uncompressed image info used by the    
208          * it should match struct vmlinux_info    
209          */                                       
210         .vmlinux.info 0 (INFO) : {                
211                 QUAD(startup_continue)            
212                 QUAD(__bss_start - _stext)        
213                 QUAD(__bss_stop - __bss_start)    
214                 QUAD(__boot_data_start)           
215                 QUAD(__boot_data_end - __boot_    
216                 QUAD(__boot_data_preserved_sta    
217                 QUAD(__boot_data_preserved_end    
218                      __boot_data_preserved_sta    
219                 QUAD(__got_start)                 
220                 QUAD(__got_end)                   
221                 QUAD(_eamode31 - _samode31)       
222                 QUAD(init_mm)                     
223                 QUAD(swapper_pg_dir)              
224                 QUAD(invalid_pg_dir)              
225                 QUAD(__alt_instructions)          
226                 QUAD(__alt_instructions_end)      
227 #ifdef CONFIG_KASAN                               
228                 QUAD(kasan_early_shadow_page)     
229                 QUAD(kasan_early_shadow_pte)      
230                 QUAD(kasan_early_shadow_pmd)      
231                 QUAD(kasan_early_shadow_pud)      
232                 QUAD(kasan_early_shadow_p4d)      
233 #endif                                            
234         } :NONE                                   
235                                                   
236         /* Debugging sections.  */                
237         STABS_DEBUG                               
238         DWARF_DEBUG                               
239         ELF_DETAILS                               
240                                                   
241         /*                                        
242          * Make sure that the .got.plt is eith    
243          * contains only the three reserved do    
244          */                                       
245         .got.plt : {                              
246                 *(.got.plt)                       
247         }                                         
248         ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF    
249                                                   
250         /*                                        
251          * Sections that should stay zero size    
252          * explicitly check instead of blindly    
253          */                                       
254         .plt : {                                  
255                 *(.plt) *(.plt.*) *(.iplt) *(.    
256         }                                         
257         ASSERT(SIZEOF(.plt) == 0, "Unexpected     
258         .rela.dyn : {                             
259                 *(.rela.*) *(.rela_*)             
260         }                                         
261         ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpe    
262                                                   
263         /* Sections to be discarded */            
264         DISCARDS                                  
265         /DISCARD/ : {                             
266                 *(.eh_frame)                      
267                 *(.interp)                        
268         }                                         
269 }                                                 
                                                      

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