linux/arch/x86/boot/compressed/vmlinux.lds.S
<<
>>
Prefs
   1#include <asm-generic/vmlinux.lds.h>
   2
   3OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
   4
   5#undef i386
   6
   7#include <asm/cache.h>
   8#include <asm/page_types.h>
   9
  10#ifdef CONFIG_X86_64
  11OUTPUT_ARCH(i386:x86-64)
  12ENTRY(startup_64)
  13#else
  14OUTPUT_ARCH(i386)
  15ENTRY(startup_32)
  16#endif
  17
  18SECTIONS
  19{
  20        /* Be careful parts of head_64.S assume startup_32 is at
  21         * address 0.
  22         */
  23        . = 0;
  24        .head.text : {
  25                _head = . ;
  26                HEAD_TEXT
  27                _ehead = . ;
  28        }
  29        .rodata..compressed : {
  30                *(.rodata..compressed)
  31        }
  32        .text : {
  33                _text = .;      /* Text */
  34                *(.text)
  35                *(.text.*)
  36                _etext = . ;
  37        }
  38        .rodata : {
  39                _rodata = . ;
  40                *(.rodata)       /* read-only data */
  41                *(.rodata.*)
  42                _erodata = . ;
  43        }
  44        .got : {
  45                _got = .;
  46                KEEP(*(.got.plt))
  47                KEEP(*(.got))
  48                _egot = .;
  49        }
  50        .data : {
  51                _data = . ;
  52                *(.data)
  53                *(.data.*)
  54                _edata = . ;
  55        }
  56        . = ALIGN(L1_CACHE_BYTES);
  57        .bss : {
  58                _bss = . ;
  59                *(.bss)
  60                *(.bss.*)
  61                *(COMMON)
  62                . = ALIGN(8);   /* For convenience during zeroing */
  63                _ebss = .;
  64        }
  65#ifdef CONFIG_X86_64
  66       . = ALIGN(PAGE_SIZE);
  67       .pgtable : {
  68                _pgtable = . ;
  69                *(.pgtable)
  70                _epgtable = . ;
  71        }
  72#endif
  73        _end = .;
  74}
  75