Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6/x86.git] / arch / mn10300 / kernel / vmlinux.lds.S
blob13c4814c29f840dd4ecb95e4e7206da7127aef49
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>
16 OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin")
17 OUTPUT_ARCH(mn10300)
18 ENTRY(_start)
19 jiffies = jiffies_64;
20 #ifndef CONFIG_MN10300_CURRENT_IN_E2
21 current = __current;
22 #endif
23 SECTIONS
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         LOCK_TEXT
34         KPROBES_TEXT
35         *(.fixup)
36         *(.gnu.warning)
37         } = 0xcb
39   _etext = .;                   /* End of text section */
41   EXCEPTION_TABLE(16)
42   BUG_TABLE
44   RO_DATA(PAGE_SIZE)
46   /* writeable */
47   _sdata = .;     /* Start of rw data section */
48   RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
49   _edata = .;
51   /* might get freed after init */
52   . = ALIGN(PAGE_SIZE);
53   .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
54         __smp_locks = .;
55         *(.smp_locks)
56         __smp_locks_end = .;
57   }
59   /* will be freed after init */
60   . = ALIGN(PAGE_SIZE);         /* Init code and data */
61   __init_begin = .;
62   INIT_TEXT_SECTION(PAGE_SIZE)
63   INIT_DATA_SECTION(16)
64   . = ALIGN(4);
65   __alt_instructions = .;
66   .altinstructions : { *(.altinstructions) }
67   __alt_instructions_end = .;
68  .altinstr_replacement : { *(.altinstr_replacement) }
69   /* .exit.text is discard at runtime, not link time, to deal with references
70      from .altinstructions and .eh_frame */
71         .exit.text : { EXIT_TEXT; }
72         .exit.data : { EXIT_DATA; }
74   PERCPU_SECTION(32)
75   . = ALIGN(PAGE_SIZE);
76   __init_end = .;
77   /* freed after init ends here */
79   BSS_SECTION(0, PAGE_SIZE, 4)
81   _end = . ;
83   /* This is where the kernel creates the early boot page tables */
84   . = ALIGN(PAGE_SIZE);
85   pg0 = .;
87   STABS_DEBUG
89   DWARF_DEBUG
91   /* Sections to be discarded */
92   DISCARDS