/* SPDX-License-Identifier: GPL-2.0 */ #include <asm-generic/vmlinux.lds.h> #include <asm/vmlinux.lds.h> OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390") OUTPUT_ARCH(s390:64-bit) ENTRY(startup) SECTIONS { . = 0; .head.text : { _head = . ; HEAD_TEXT _ehead = . ; } .text : { _text = .; /* Text */ *(.text) *(.text.*) _etext = . ; } .rodata : { _rodata = . ; *(.rodata) /* read-only data */ *(.rodata.*) _erodata = . ; } .data : { _data = . ; *(.data) *(.data.*) _edata = . ; } /* * .dma section for code, data, ex_table that need to stay below 2 GB, * even when the kernel is relocate: above 2 GB. */ . = ALIGN(PAGE_SIZE); _sdma = .; .dma.text : { _stext_dma = .; *(.dma.text) . = ALIGN(PAGE_SIZE); _etext_dma = .; } . = ALIGN(16); .dma.ex_table : { _start_dma_ex_table = .; KEEP(*(.dma.ex_table)) _stop_dma_ex_table = .; } .dma.data : { *(.dma.data) } . = ALIGN(PAGE_SIZE); _edma = .; BOOT_DATA BOOT_DATA_PRESERVED /* * uncompressed image info used by the decompressor it should match * struct vmlinux_info. It comes from .vmlinux.info section of * uncompressed vmlinux in a form of info.o */ . = ALIGN(8); .vmlinux.info : { _vmlinux_info = .; *(.vmlinux.info) } #ifdef [31mCONFIG_KERNEL_UNCOMPRESSED[0m . = 0x100000; #else . = ALIGN(8); #endif .rodata.compressed : { _compressed_start = .; *(.vmlinux.bin.compressed) _compressed_end = .; FILL(0xff); . = ALIGN(4096); } . = ALIGN(256); .bss : { _bss = . ; *(.bss) *(.bss.*) *(COMMON) . = ALIGN(8); /* For convenience during zeroing */ _ebss = .; } _end = .; /* Sections to be discarded */ /DISCARD/ : { *(.eh_frame) *(__ex_table) *(*__ksymtab*) *(___kcrctab*) } } |