linux/arch/mn10300/kernel/vmlinux.lds.S
<<
>>
Prefs
   1/* MN10300 Main kernel linker script
   2 *
   3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public Licence
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the Licence, or (at your option) any later version.
  10 */
  11#define __VMLINUX_LDS__
  12#include <asm-generic/vmlinux.lds.h>
  13#include <asm/thread_info.h>
  14#include <asm/page.h>
  15
  16OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin")
  17OUTPUT_ARCH(mn10300)
  18ENTRY(_start)
  19jiffies = jiffies_64;
  20#ifndef CONFIG_MN10300_CURRENT_IN_E2
  21current = __current;
  22#endif
  23SECTIONS
  24{
  25  . = CONFIG_KERNEL_TEXT_ADDRESS;
  26  /* read-only */
  27  _stext = .;
  28  _text = .;                    /* Text and read-only data */
  29  .text : {
  30        HEAD_TEXT
  31        TEXT_TEXT
  32        SCHED_TEXT
  33        CPUIDLE_TEXT
  34        LOCK_TEXT
  35        KPROBES_TEXT
  36        *(.fixup)
  37        *(.gnu.warning)
  38        } = 0xcb
  39
  40  _etext = .;                   /* End of text section */
  41
  42  EXCEPTION_TABLE(16)
  43  BUG_TABLE
  44
  45  RO_DATA(PAGE_SIZE)
  46
  47  /* writeable */
  48  _sdata = .;     /* Start of rw data section */
  49  RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  50  _edata = .;
  51
  52  /* might get freed after init */
  53  . = ALIGN(PAGE_SIZE);
  54  .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
  55        __smp_locks = .;
  56        *(.smp_locks)
  57        __smp_locks_end = .;
  58  }
  59
  60  /* will be freed after init */
  61  . = ALIGN(PAGE_SIZE);         /* Init code and data */
  62  __init_begin = .;
  63  INIT_TEXT_SECTION(PAGE_SIZE)
  64  INIT_DATA_SECTION(16)
  65  . = ALIGN(4);
  66  __alt_instructions = .;
  67  .altinstructions : { *(.altinstructions) }
  68  __alt_instructions_end = .;
  69 .altinstr_replacement : { *(.altinstr_replacement) }
  70  /* .exit.text is discard at runtime, not link time, to deal with references
  71     from .altinstructions and .eh_frame */
  72        .exit.text : { EXIT_TEXT; }
  73        .exit.data : { EXIT_DATA; }
  74
  75  PERCPU_SECTION(32)
  76  . = ALIGN(PAGE_SIZE);
  77  __init_end = .;
  78  /* freed after init ends here */
  79
  80  BSS_SECTION(0, PAGE_SIZE, 4)
  81
  82  _end = . ;
  83
  84  /* This is where the kernel creates the early boot page tables */
  85  . = ALIGN(PAGE_SIZE);
  86  pg0 = .;
  87
  88  STABS_DEBUG
  89
  90  DWARF_DEBUG
  91
  92  /* Sections to be discarded */
  93  DISCARDS
  94}
  95