| .. | .. |
|---|
| 15 | 15 | /* Handle ro_after_init data on our own. */ |
|---|
| 16 | 16 | #define RO_AFTER_INIT_DATA |
|---|
| 17 | 17 | |
|---|
| 18 | +#define RUNTIME_DISCARD_EXIT |
|---|
| 19 | + |
|---|
| 20 | +#define EMITS_PT_NOTE |
|---|
| 21 | + |
|---|
| 18 | 22 | #include <asm-generic/vmlinux.lds.h> |
|---|
| 23 | +#include <asm/vmlinux.lds.h> |
|---|
| 19 | 24 | |
|---|
| 20 | 25 | OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390") |
|---|
| 21 | 26 | OUTPUT_ARCH(s390:64-bit) |
|---|
| .. | .. |
|---|
| 49 | 54 | _etext = .; /* End of text section */ |
|---|
| 50 | 55 | } :text = 0x0700 |
|---|
| 51 | 56 | |
|---|
| 52 | | - NOTES :text :note |
|---|
| 53 | | - |
|---|
| 54 | | - .dummy : { *(.dummy) } :data |
|---|
| 55 | | - |
|---|
| 56 | | - RO_DATA_SECTION(PAGE_SIZE) |
|---|
| 57 | + RO_DATA(PAGE_SIZE) |
|---|
| 57 | 58 | |
|---|
| 58 | 59 | . = ALIGN(PAGE_SIZE); |
|---|
| 59 | 60 | _sdata = .; /* Start of data section */ |
|---|
| .. | .. |
|---|
| 62 | 63 | __start_ro_after_init = .; |
|---|
| 63 | 64 | .data..ro_after_init : { |
|---|
| 64 | 65 | *(.data..ro_after_init) |
|---|
| 65 | | - } |
|---|
| 66 | + JUMP_TABLE_DATA |
|---|
| 67 | + } :data |
|---|
| 66 | 68 | EXCEPTION_TABLE(16) |
|---|
| 67 | 69 | . = ALIGN(PAGE_SIZE); |
|---|
| 68 | 70 | __end_ro_after_init = .; |
|---|
| 69 | 71 | |
|---|
| 70 | | - RW_DATA_SECTION(0x100, PAGE_SIZE, THREAD_SIZE) |
|---|
| 72 | + RW_DATA(0x100, PAGE_SIZE, THREAD_SIZE) |
|---|
| 73 | + BOOT_DATA_PRESERVED |
|---|
| 71 | 74 | |
|---|
| 72 | 75 | _edata = .; /* End of data section */ |
|---|
| 73 | 76 | |
|---|
| .. | .. |
|---|
| 121 | 124 | /* |
|---|
| 122 | 125 | * Table with the patch locations to undo expolines |
|---|
| 123 | 126 | */ |
|---|
| 127 | + . = ALIGN(4); |
|---|
| 124 | 128 | .nospec_call_table : { |
|---|
| 125 | 129 | __nospec_call_start = . ; |
|---|
| 126 | 130 | *(.s390_indirect*) |
|---|
| .. | .. |
|---|
| 132 | 136 | __nospec_return_end = . ; |
|---|
| 133 | 137 | } |
|---|
| 134 | 138 | |
|---|
| 139 | + BOOT_DATA |
|---|
| 140 | + |
|---|
| 135 | 141 | /* early.c uses stsi, which requires page aligned data. */ |
|---|
| 136 | 142 | . = ALIGN(PAGE_SIZE); |
|---|
| 137 | 143 | INIT_DATA_SECTION(0x100) |
|---|
| 138 | 144 | |
|---|
| 139 | 145 | PERCPU_SECTION(0x100) |
|---|
| 146 | + |
|---|
| 147 | + .dynsym ALIGN(8) : { |
|---|
| 148 | + __dynsym_start = .; |
|---|
| 149 | + *(.dynsym) |
|---|
| 150 | + __dynsym_end = .; |
|---|
| 151 | + } |
|---|
| 152 | + .rela.dyn ALIGN(8) : { |
|---|
| 153 | + __rela_dyn_start = .; |
|---|
| 154 | + *(.rela*) |
|---|
| 155 | + __rela_dyn_end = .; |
|---|
| 156 | + } |
|---|
| 157 | + |
|---|
| 140 | 158 | . = ALIGN(PAGE_SIZE); |
|---|
| 141 | 159 | __init_end = .; /* freed after init ends here */ |
|---|
| 142 | 160 | |
|---|
| .. | .. |
|---|
| 144 | 162 | |
|---|
| 145 | 163 | _end = . ; |
|---|
| 146 | 164 | |
|---|
| 165 | + /* |
|---|
| 166 | + * uncompressed image info used by the decompressor |
|---|
| 167 | + * it should match struct vmlinux_info |
|---|
| 168 | + */ |
|---|
| 169 | + .vmlinux.info 0 (INFO) : { |
|---|
| 170 | + QUAD(_stext) /* default_lma */ |
|---|
| 171 | + QUAD(startup_continue) /* entry */ |
|---|
| 172 | + QUAD(__bss_start - _stext) /* image_size */ |
|---|
| 173 | + QUAD(__bss_stop - __bss_start) /* bss_size */ |
|---|
| 174 | + QUAD(__boot_data_start) /* bootdata_off */ |
|---|
| 175 | + QUAD(__boot_data_end - __boot_data_start) /* bootdata_size */ |
|---|
| 176 | + QUAD(__boot_data_preserved_start) /* bootdata_preserved_off */ |
|---|
| 177 | + QUAD(__boot_data_preserved_end - |
|---|
| 178 | + __boot_data_preserved_start) /* bootdata_preserved_size */ |
|---|
| 179 | + QUAD(__dynsym_start) /* dynsym_start */ |
|---|
| 180 | + QUAD(__rela_dyn_start) /* rela_dyn_start */ |
|---|
| 181 | + QUAD(__rela_dyn_end) /* rela_dyn_end */ |
|---|
| 182 | + } :NONE |
|---|
| 183 | + |
|---|
| 147 | 184 | /* Debugging sections. */ |
|---|
| 148 | 185 | STABS_DEBUG |
|---|
| 149 | 186 | DWARF_DEBUG |
|---|
| 187 | + ELF_DETAILS |
|---|
| 150 | 188 | |
|---|
| 151 | 189 | /* Sections to be discarded */ |
|---|
| 152 | 190 | DISCARDS |
|---|
| 153 | 191 | /DISCARD/ : { |
|---|
| 154 | 192 | *(.eh_frame) |
|---|
| 193 | + *(.interp) |
|---|
| 155 | 194 | } |
|---|
| 156 | 195 | } |
|---|