linux/arch/arm/boot/compressed/vmlinux.lds.S
<<
>>
Prefs
   1/*
   2 *  Copyright (C) 2000 Russell King
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 */
   8
   9#ifdef CONFIG_CPU_ENDIAN_BE8
  10#define ZIMAGE_MAGIC(x) ( (((x) >> 24) & 0x000000ff) | \
  11                          (((x) >>  8) & 0x0000ff00) | \
  12                          (((x) <<  8) & 0x00ff0000) | \
  13                          (((x) << 24) & 0xff000000) )
  14#else
  15#define ZIMAGE_MAGIC(x) (x)
  16#endif
  17
  18OUTPUT_ARCH(arm)
  19ENTRY(_start)
  20SECTIONS
  21{
  22  /DISCARD/ : {
  23    *(.ARM.exidx*)
  24    *(.ARM.extab*)
  25    /*
  26     * Discard any r/w data - this produces a link error if we have any,
  27     * which is required for PIC decompression.  Local data generates
  28     * GOTOFF relocations, which prevents it being relocated independently
  29     * of the text/got segments.
  30     */
  31    *(.data)
  32  }
  33
  34  . = TEXT_START;
  35  _text = .;
  36
  37  .text : {
  38    _start = .;
  39    *(.start)
  40    *(.text)
  41    *(.text.*)
  42    *(.fixup)
  43    *(.gnu.warning)
  44    *(.glue_7t)
  45    *(.glue_7)
  46  }
  47  .rodata : {
  48    *(.rodata)
  49    *(.rodata.*)
  50  }
  51  .data : {
  52    /*
  53     * The EFI stub always executes from RAM, and runs strictly before the
  54     * decompressor, so we can make an exception for its r/w data, and keep it
  55     */
  56    *(.data.efistub)
  57  }
  58  .piggydata : {
  59    *(.piggydata)
  60  }
  61
  62  . = ALIGN(4);
  63  _etext = .;
  64
  65  .got.plt              : { *(.got.plt) }
  66  _got_start = .;
  67  .got                  : { *(.got) }
  68  _got_end = .;
  69
  70  /* ensure the zImage file size is always a multiple of 64 bits */
  71  /* (without a dummy byte, ld just ignores the empty section) */
  72  .pad                  : { BYTE(0); . = ALIGN(8); }
  73  _edata = .;
  74
  75  _magic_sig = ZIMAGE_MAGIC(0x016f2818);
  76  _magic_start = ZIMAGE_MAGIC(_start);
  77  _magic_end = ZIMAGE_MAGIC(_edata);
  78
  79  . = BSS_START;
  80  __bss_start = .;
  81  .bss                  : { *(.bss) }
  82  _end = .;
  83
  84  . = ALIGN(8);         /* the stack must be 64-bit aligned */
  85  .stack                : { *(.stack) }
  86
  87  .stab 0               : { *(.stab) }
  88  .stabstr 0            : { *(.stabstr) }
  89  .stab.excl 0          : { *(.stab.excl) }
  90  .stab.exclstr 0       : { *(.stab.exclstr) }
  91  .stab.index 0         : { *(.stab.index) }
  92  .stab.indexstr 0      : { *(.stab.indexstr) }
  93  .comment 0            : { *(.comment) }
  94}
  95