Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / s390 / boot / compressed / vmlinux.lds.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <asm-generic/vmlinux.lds.h>
3 #include <asm/vmlinux.lds.h>
4
5 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
6 OUTPUT_ARCH(s390:64-bit)
7
8 ENTRY(startup)
9
10 SECTIONS
11 {
12         . = 0;
13         .head.text : {
14                 _head = . ;
15                 HEAD_TEXT
16                 _ehead = . ;
17         }
18         .text : {
19                 _text = .;      /* Text */
20                 *(.text)
21                 *(.text.*)
22                 _etext = . ;
23         }
24         .rodata : {
25                 _rodata = . ;
26                 *(.rodata)       /* read-only data */
27                 *(.rodata.*)
28                 _erodata = . ;
29         }
30         .data : {
31                 _data = . ;
32                 *(.data)
33                 *(.data.*)
34                 _edata = . ;
35         }
36         /*
37         * .dma section for code, data, ex_table that need to stay below 2 GB,
38         * even when the kernel is relocate: above 2 GB.
39         */
40         _sdma = .;
41         .dma.text : {
42                 . = ALIGN(PAGE_SIZE);
43                 _stext_dma = .;
44                 *(.dma.text)
45                 . = ALIGN(PAGE_SIZE);
46                 _etext_dma = .;
47         }
48         . = ALIGN(16);
49         .dma.ex_table : {
50                 _start_dma_ex_table = .;
51                 KEEP(*(.dma.ex_table))
52                 _stop_dma_ex_table = .;
53         }
54         .dma.data : { *(.dma.data) }
55         _edma = .;
56
57         BOOT_DATA
58         BOOT_DATA_PRESERVED
59
60         /*
61          * uncompressed image info used by the decompressor it should match
62          * struct vmlinux_info. It comes from .vmlinux.info section of
63          * uncompressed vmlinux in a form of info.o
64          */
65         . = ALIGN(8);
66         .vmlinux.info : {
67                 _vmlinux_info = .;
68                 *(.vmlinux.info)
69         }
70
71 #ifdef CONFIG_KERNEL_UNCOMPRESSED
72         . = 0x100000;
73 #else
74         . = ALIGN(8);
75 #endif
76         .rodata.compressed : {
77                 _compressed_start = .;
78                 *(.vmlinux.bin.compressed)
79                 _compressed_end = .;
80         }
81         . = ALIGN(256);
82         .bss : {
83                 _bss = . ;
84                 *(.bss)
85                 *(.bss.*)
86                 *(COMMON)
87                 . = ALIGN(8);   /* For convenience during zeroing */
88                 _ebss = .;
89         }
90         _end = .;
91
92         /* Sections to be discarded */
93         /DISCARD/ : {
94                 *(.eh_frame)
95                 *(__ex_table)
96                 *(*__ksymtab*)
97                 *(___kcrctab*)
98         }
99 }