forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/arch/s390/kernel/vmlinux.lds.S
....@@ -15,7 +15,10 @@
1515 /* Handle ro_after_init data on our own. */
1616 #define RO_AFTER_INIT_DATA
1717
18
+#define EMITS_PT_NOTE
19
+
1820 #include <asm-generic/vmlinux.lds.h>
21
+#include <asm/vmlinux.lds.h>
1922
2023 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
2124 OUTPUT_ARCH(s390:64-bit)
....@@ -49,11 +52,7 @@
4952 _etext = .; /* End of text section */
5053 } :text = 0x0700
5154
52
- NOTES :text :note
53
-
54
- .dummy : { *(.dummy) } :data
55
-
56
- RO_DATA_SECTION(PAGE_SIZE)
55
+ RO_DATA(PAGE_SIZE)
5756
5857 . = ALIGN(PAGE_SIZE);
5958 _sdata = .; /* Start of data section */
....@@ -62,12 +61,14 @@
6261 __start_ro_after_init = .;
6362 .data..ro_after_init : {
6463 *(.data..ro_after_init)
65
- }
64
+ JUMP_TABLE_DATA
65
+ } :data
6666 EXCEPTION_TABLE(16)
6767 . = ALIGN(PAGE_SIZE);
6868 __end_ro_after_init = .;
6969
70
- RW_DATA_SECTION(0x100, PAGE_SIZE, THREAD_SIZE)
70
+ RW_DATA(0x100, PAGE_SIZE, THREAD_SIZE)
71
+ BOOT_DATA_PRESERVED
7172
7273 _edata = .; /* End of data section */
7374
....@@ -121,6 +122,7 @@
121122 /*
122123 * Table with the patch locations to undo expolines
123124 */
125
+ . = ALIGN(4);
124126 .nospec_call_table : {
125127 __nospec_call_start = . ;
126128 *(.s390_indirect*)
....@@ -132,11 +134,25 @@
132134 __nospec_return_end = . ;
133135 }
134136
137
+ BOOT_DATA
138
+
135139 /* early.c uses stsi, which requires page aligned data. */
136140 . = ALIGN(PAGE_SIZE);
137141 INIT_DATA_SECTION(0x100)
138142
139143 PERCPU_SECTION(0x100)
144
+
145
+ .dynsym ALIGN(8) : {
146
+ __dynsym_start = .;
147
+ *(.dynsym)
148
+ __dynsym_end = .;
149
+ }
150
+ .rela.dyn ALIGN(8) : {
151
+ __rela_dyn_start = .;
152
+ *(.rela*)
153
+ __rela_dyn_end = .;
154
+ }
155
+
140156 . = ALIGN(PAGE_SIZE);
141157 __init_end = .; /* freed after init ends here */
142158
....@@ -144,9 +160,29 @@
144160
145161 _end = . ;
146162
163
+ /*
164
+ * uncompressed image info used by the decompressor
165
+ * it should match struct vmlinux_info
166
+ */
167
+ .vmlinux.info 0 (INFO) : {
168
+ QUAD(_stext) /* default_lma */
169
+ QUAD(startup_continue) /* entry */
170
+ QUAD(__bss_start - _stext) /* image_size */
171
+ QUAD(__bss_stop - __bss_start) /* bss_size */
172
+ QUAD(__boot_data_start) /* bootdata_off */
173
+ QUAD(__boot_data_end - __boot_data_start) /* bootdata_size */
174
+ QUAD(__boot_data_preserved_start) /* bootdata_preserved_off */
175
+ QUAD(__boot_data_preserved_end -
176
+ __boot_data_preserved_start) /* bootdata_preserved_size */
177
+ QUAD(__dynsym_start) /* dynsym_start */
178
+ QUAD(__rela_dyn_start) /* rela_dyn_start */
179
+ QUAD(__rela_dyn_end) /* rela_dyn_end */
180
+ } :NONE
181
+
147182 /* Debugging sections. */
148183 STABS_DEBUG
149184 DWARF_DEBUG
185
+ ELF_DETAILS
150186
151187 /* Sections to be discarded */
152188 DISCARDS