linux/arch/s390/boot/compressed/vmlinux.lds.S
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#include <asm-generic/vmlinux.lds.h>
   3#include <asm/vmlinux.lds.h>
   4
   5OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
   6OUTPUT_ARCH(s390:64-bit)
   7
   8ENTRY(startup)
   9
  10SECTIONS
  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        . = ALIGN(PAGE_SIZE);
  41        _sdma = .;
  42        .dma.text : {
  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        . = ALIGN(PAGE_SIZE);
  56        _edma = .;
  57
  58        BOOT_DATA
  59        BOOT_DATA_PRESERVED
  60
  61        /*
  62         * uncompressed image info used by the decompressor it should match
  63         * struct vmlinux_info. It comes from .vmlinux.info section of
  64         * uncompressed vmlinux in a form of info.o
  65         */
  66        . = ALIGN(8);
  67        .vmlinux.info : {
  68                _vmlinux_info = .;
  69                *(.vmlinux.info)
  70        }
  71
  72#ifdef CONFIG_KERNEL_UNCOMPRESSED
  73        . = 0x100000;
  74#else
  75        . = ALIGN(8);
  76#endif
  77        .rodata.compressed : {
  78                _compressed_start = .;
  79                *(.vmlinux.bin.compressed)
  80                _compressed_end = .;
  81                FILL(0xff);
  82                . = ALIGN(4096);
  83        }
  84        . = ALIGN(256);
  85        .bss : {
  86                _bss = . ;
  87                *(.bss)
  88                *(.bss.*)
  89                *(COMMON)
  90                . = ALIGN(8);   /* For convenience during zeroing */
  91                _ebss = .;
  92        }
  93        _end = .;
  94
  95        /* Sections to be discarded */
  96        /DISCARD/ : {
  97                *(.eh_frame)
  98                *(__ex_table)
  99                *(*__ksymtab*)
 100                *(___kcrctab*)
 101        }
 102}
 103