linux/arch/frv/kernel/vmlinux.lds.S
<<
>>
Prefs
   1/* ld script to make FRV Linux kernel
   2 * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
   3 */
   4OUTPUT_FORMAT("elf32-frv", "elf32-frv", "elf32-frv")
   5OUTPUT_ARCH(frv)
   6ENTRY(_start)
   7
   8#include <asm-generic/vmlinux.lds.h>
   9#include <asm/processor.h>
  10#include <asm/page.h>
  11#include <asm/cache.h>
  12#include <asm/thread_info.h>
  13
  14jiffies = jiffies_64 + 4;
  15
  16__page_offset = CONFIG_PAGE_OFFSET;     /* start of area covered by struct pages */
  17__kernel_image_start = __page_offset;   /* address at which kernel image resides */
  18
  19SECTIONS
  20{
  21  . = __kernel_image_start;
  22
  23  /* discardable initialisation code and data */
  24  . = ALIGN(PAGE_SIZE);                 /* Init code and data */
  25  __init_begin = .;
  26
  27  _sinittext = .;
  28  .init.text : {
  29        HEAD_TEXT
  30#ifndef CONFIG_DEBUG_INFO
  31        INIT_TEXT
  32        EXIT_TEXT
  33        EXIT_DATA
  34        *(.exitcall.exit)
  35#endif
  36  }
  37  _einittext = .;
  38
  39  INIT_DATA_SECTION(8)
  40  PERCPU(4096)
  41
  42  . = ALIGN(PAGE_SIZE);
  43  __init_end = .;
  44
  45  .trap : {
  46        /* trap table management - read entry-table.S before modifying */
  47        . = ALIGN(8192);
  48        __trap_tables = .;
  49        *(.trap.user)
  50        *(.trap.kernel)
  51        . = ALIGN(4096);
  52        *(.trap.break)
  53  }
  54
  55  /* Text and read-only data */
  56  . = ALIGN(4);
  57  _text = .;
  58  _stext = .;
  59  .text : {
  60        *(.text.start)
  61        *(.text.entry)
  62        *(.text.break)
  63        *(.text.tlbmiss)
  64        TEXT_TEXT
  65        SCHED_TEXT
  66        LOCK_TEXT
  67#ifdef CONFIG_DEBUG_INFO
  68        INIT_TEXT
  69        EXIT_TEXT
  70        *(.exitcall.exit)
  71#endif
  72        *(.fixup)
  73        *(.gnu.warning)
  74        *(.exitcall.exit)
  75        } = 0x9090
  76
  77  _etext = .;                   /* End of text section */
  78
  79  RODATA
  80
  81  .rodata : {
  82        *(.trap.vector)
  83
  84        /* this clause must not be modified - the ordering and adjacency are imperative */
  85        __trap_fixup_tables = .;
  86        *(.trap.fixup.user .trap.fixup.kernel)
  87
  88        }
  89
  90  EXCEPTION_TABLE(8)
  91
  92  _sdata = .;
  93  .data : {                     /* Data */
  94        INIT_TASK_DATA(THREAD_SIZE)
  95        CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
  96        DATA_DATA
  97        *(.data.*)
  98        EXIT_DATA
  99        CONSTRUCTORS
 100        }
 101
 102  _edata = .;                   /* End of data section */
 103
 104  /* GP section */
 105  . = ALIGN(L1_CACHE_BYTES);
 106  _gp = . + 2048;
 107  PROVIDE (gp = _gp);
 108
 109  .sdata : { *(.sdata .sdata.*) }
 110
 111  /* BSS */
 112  . = ALIGN(L1_CACHE_BYTES);
 113  __bss_start = .;
 114
 115  .sbss         : { *(.sbss .sbss.*) }
 116  .bss          : { *(.bss .bss.*) }
 117  .bss.stack    : { *(.bss) }
 118
 119  __bss_stop = .;
 120  _end = . ;
 121  . = ALIGN(PAGE_SIZE);
 122  __kernel_image_end = .;
 123
 124  STABS_DEBUG
 125  DWARF_DEBUG
 126
 127  .comment 0 : { *(.comment) }
 128
 129  DISCARDS
 130}
 131
 132__kernel_image_size_no_bss = __bss_start - __kernel_image_start;
 133