4 * Automatically generated C config: don't edit
5 * Linux kernel version: 2.6.25-rc2-git1
6 * Tue Feb 19 20:01:37 2008
8 /* ld script to make ARM Linux kernel
9 * taken from the i386 version by Russell King
10 * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
12 /* Align . to a 8 byte boundary equals to maximum function alignment. */
14 /* The actual configuration determine if the init/exit sections
15 * are handled as text/data or they can be discarded (which
16 * often happens at runtime)
19 /* RODATA provided for backward compatibility.
20 * All archs are supposed to use RO_DATA() */
21 /* .text section. Map to function alignment to avoid address changes
22 * during second ld run in second ld pass when generating System.map */
23 /* sched.text is aling to function alignment to secure we have same
24 * address even at second ld pass when generating System.map */
25 /* spinlock.text is aling to function alignment to secure we have same
26 * address even at second ld pass when generating System.map */
27 /* init and exit section handling */
28 /* DWARF debug sections.
29 Symbols in the DWARF debugging sections are relative to
30 the beginning of the section so we begin them at 0. */
31 /* Stabs debugging sections. */
33 * linux/include/asm-arm/thread_info.h
35 * Copyright (C) 2002 Russell King.
37 * This program is free software; you can redistribute it and/or modify
38 * it under the terms of the GNU General Public License version 2 as
39 * published by the Free Software Foundation.
42 * Allow us to mark functions as 'deprecated' and have gcc emit a nice
43 * warning for each use, in hopes of speeding the functions removal.
45 * int __deprecated foo(void)
48 * Allow us to avoid 'defined but not used' warnings on functions and data,
49 * as well as force them to be emitted to the assembly file.
51 * As of gcc 3.4, static functions that are not marked with attribute((used))
52 * may be elided from the assembly file. As of gcc 3.4, static data not so
53 * marked will not be elided, but this may change in a future gcc version.
55 * NOTE: Because distributions shipped with a backported unit-at-a-time
56 * compiler in gcc 3.3, we must define __used to be __attribute__((used))
57 * for gcc >=3.3 instead of 3.4.
59 * In prior versions of gcc, such functions and data would be emitted, but
60 * would be warned about except with attribute((unused)).
62 * Mark functions that are referenced only in inline assembly as __used so
63 * the code is emitted even though it appears to be unreferenced.
66 * From the GCC manual:
68 * Many functions do not examine any values except their arguments,
69 * and have no effects except the return value. Basically this is
70 * just slightly more strict class than the `pure' attribute above,
71 * since function is not allowed to read global memory.
73 * Note that a function that has pointer arguments and examines the
74 * data pointed to must _not_ be declared `const'. Likewise, a
75 * function that calls a non-`const' function usually must not be
76 * `const'. It does not make sense for a `const' function to return
80 * Tell gcc if a function is cold. The compiler will assume any path
81 * directly leading to the call is unlikely.
83 /* Simple shorthand for a section definition */
85 * linux/include/asm-arm/fpstate.h
87 * Copyright (C) 1995 Russell King
89 * This program is free software; you can redistribute it and/or modify
90 * it under the terms of the GNU General Public License version 2 as
91 * published by the Free Software Foundation.
94 * We use bit 30 of the preempt_count to indicate that kernel
95 * preemption is occurring. See include/asm-arm/hardirq.h.
98 * thread information flags:
99 * TIF_SYSCALL_TRACE - syscall trace active
100 * TIF_SIGPENDING - signal pending
101 * TIF_NEED_RESCHED - rescheduling necessary
102 * TIF_USEDFPU - FPU was used by this task this quantum (SMP)
103 * TIF_POLLING_NRFLAG - true if poll_idle() is polling TIF_NEED_RESCHED
106 * Change these and you break ASM code in entry-common.S
109 * linux/include/asm-arm/memory.h
111 * Copyright (C) 2000-2002 Russell King
112 * modification for nommu, Hyok S. Choi, 2004
114 * This program is free software; you can redistribute it and/or modify
115 * it under the terms of the GNU General Public License version 2 as
116 * published by the Free Software Foundation.
118 * Note: this file should not be included by non-asm/.h files
121 * Allow for constants defined here to be used from assembly code
122 * by prepending the UL suffix only with actual C code compilation.
125 * include/asm-arm/arch-orion/memory.h
127 * Marvell Orion memory definitions
130 * This program is free software; you can redistribute it and/or modify
131 * it under the terms of the GNU General Public License as published by
132 * the Free Software Foundation; either version 2 of the License, or
133 * (at your option) any later version.
135 * This program is distributed in the hope that it will be useful,
136 * but WITHOUT ANY WARRANTY; without even the implied warranty of
137 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
138 * GNU General Public License for more details.
140 * You should have received a copy of the GNU General Public License
141 * along with this program; if not, write to the Free Software
142 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
144 /* DO NOT EDIT!! - this file automatically generated
145 * from .s file by awk -f s2h.awk
148 * Copyright (C) ARM Limited 1998. All rights reserved.
153 * TASK_SIZE - the maximum size of a user space task.
154 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
157 * The maximum size of a 26-bit user space task.
163 * The module space lives between the addresses given by TASK_SIZE
164 * and PAGE_OFFSET - it must be within 32MB of the kernel text.
167 * The XIP kernel gets mapped at the bottom of the module vm area.
168 * Since we use sections to map it, this macro replaces the physical address
169 * with its virtual address while keeping offset from the base section.
172 * Allow 16MB-aligned ioremap pages
175 * Size of DMA-consistent memory region. Must be multiple of 2M,
176 * between 2MB and 14MB inclusive.
179 * Physical vs virtual RAM address space conversion. These are
180 * private definitions which should NOT be used outside memory.h
181 * files. Use virt_to_phys/phys_to_virt/__pa/__va instead.
184 * Convert a physical address to a Page Frame Number and back
188 jiffies = jiffies_64;
191 . = (0xc0000000) + 0x00008000;
197 .init : { /* Init code and data */
198 *(.init.text) *(.cpuinit.text) *(.meminit.text)
200 __proc_info_begin = .;
203 __arch_info_begin = .;
206 __tagtable_begin = .;
216 __initcall_start = .;
217 *(.initcall0.init) *(.initcall0s.init) *(.initcall1.init) *(.initcall1s.init) *(.initcall2.init) *(.initcall2s.init) *(.initcall3.init) *(.initcall3s.init) *(.initcall4.init) *(.initcall4s.init) *(.initcall5.init) *(.initcall5s.init) *(.initcallrootfs.init) *(.initcall6.init) *(.initcall6s.init) *(.initcall7.init) *(.initcall7s.init)
219 __con_initcall_start = .;
220 *(.con_initcall.init)
221 __con_initcall_end = .;
222 __security_initcall_start = .;
223 *(.security_initcall.init)
224 __security_initcall_end = .;
228 *(.data.percpu.shared_aligned)
230 __init_begin = _stext;
231 *(.init.data) *(.cpuinit.data) *(.cpuinit.rodata) *(.meminit.data) *(.meminit.rodata)
235 /DISCARD/ : { /* Exit code and data */
236 *(.exit.text) *(.cpuexit.text) *(.memexit.text)
237 *(.exit.data) *(.cpuexit.data) *(.cpuexit.rodata) *(.memexit.data) *(.memexit.rodata)
240 .text : { /* Real text segment */
241 _text = .; /* Text and read-only data */
242 __exception_text_start = .;
244 __exception_text_end = .;
245 . = ALIGN(8); *(.text) *(.ref.text) *(.text.init.refok) *(.exit.text.refok) *(.devinit.text) *(.devexit.text)
246 . = ALIGN(8); __sched_text_start = .; *(.sched.text) __sched_text_end = .;
247 . = ALIGN(8); __lock_text_start = .; *(.spinlock.text) __lock_text_end = .;
248 . = ALIGN(8); __kprobes_text_start = .; *(.kprobes.text) __kprobes_text_end = .;
255 *(.got) /* Global offset table */
257 . = ALIGN((4096)); .rodata : AT(ADDR(.rodata) - 0) { __start_rodata = .; *(.rodata) *(.rodata.*) *(__vermagic) *(__markers_strings) } .rodata1 : AT(ADDR(.rodata1) - 0) { *(.rodata1) } .pci_fixup : AT(ADDR(.pci_fixup) - 0) { __start_pci_fixups_early = .; *(.pci_fixup_early) __end_pci_fixups_early = .; __start_pci_fixups_header = .; *(.pci_fixup_header) __end_pci_fixups_header = .; __start_pci_fixups_final = .; *(.pci_fixup_final) __end_pci_fixups_final = .; __start_pci_fixups_enable = .; *(.pci_fixup_enable) __end_pci_fixups_enable = .; __start_pci_fixups_resume = .; *(.pci_fixup_resume) __end_pci_fixups_resume = .; } .rio_route : AT(ADDR(.rio_route) - 0) { __start_rio_route_ops = .; *(.rio_route_ops) __end_rio_route_ops = .; } __ksymtab : AT(ADDR(__ksymtab) - 0) { __start___ksymtab = .; *(__ksymtab) __stop___ksymtab = .; } __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - 0) { __start___ksymtab_gpl = .; *(__ksymtab_gpl) __stop___ksymtab_gpl = .; } __ksymtab_unused : AT(ADDR(__ksymtab_unused) - 0) { __start___ksymtab_unused = .; *(__ksymtab_unused) __stop___ksymtab_unused = .; } __ksymtab_unused_gpl : AT(ADDR(__ksymtab_unused_gpl) - 0) { __start___ksymtab_unused_gpl = .; *(__ksymtab_unused_gpl) __stop___ksymtab_unused_gpl = .; } __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - 0) { __start___ksymtab_gpl_future = .; *(__ksymtab_gpl_future) __stop___ksymtab_gpl_future = .; } __kcrctab : AT(ADDR(__kcrctab) - 0) { __start___kcrctab = .; *(__kcrctab) __stop___kcrctab = .; } __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - 0) { __start___kcrctab_gpl = .; *(__kcrctab_gpl) __stop___kcrctab_gpl = .; } __kcrctab_unused : AT(ADDR(__kcrctab_unused) - 0) { __start___kcrctab_unused = .; *(__kcrctab_unused) __stop___kcrctab_unused = .; } __kcrctab_unused_gpl : AT(ADDR(__kcrctab_unused_gpl) - 0) { __start___kcrctab_unused_gpl = .; *(__kcrctab_unused_gpl) __stop___kcrctab_unused_gpl = .; } __kcrctab_gpl_future : AT(ADDR(__kcrctab_gpl_future) - 0) { __start___kcrctab_gpl_future = .; *(__kcrctab_gpl_future) __stop___kcrctab_gpl_future = .; } __ksymtab_strings : AT(ADDR(__ksymtab_strings) - 0) { *(__ksymtab_strings) } __init_rodata : AT(ADDR(__init_rodata) - 0) { *(.ref.rodata) *(.devinit.rodata) *(.devexit.rodata) } __param : AT(ADDR(__param) - 0) { __start___param = .; *(__param) __stop___param = .; . = ALIGN((4096)); __end_rodata = .; } . = ALIGN((4096));
258 _etext = .; /* End of text and rodata section */
261 .data : AT(__data_loc) {
262 __data_start = .; /* address in memory */
264 * first, the init task union, aligned
265 * to an 8192 byte boundary.
274 * then the cacheline aligned data
277 *(.data.cacheline_aligned)
279 * The exception fixup table (might need resorting at runtime)
282 __start___ex_table = .;
284 __stop___ex_table = .;
286 * and the usual data section
288 *(.data) *(.data.init.refok) *(.ref.data) *(.devinit.data) *(.devexit.data) . = ALIGN(8); __start___markers = .; *(__markers) __stop___markers = .;
292 _edata_loc = __data_loc + SIZEOF(.data);
294 __bss_start = .; /* BSS */
299 /* Stabs debugging sections. */
300 .stab 0 : { *(.stab) }
301 .stabstr 0 : { *(.stabstr) }
302 .stab.excl 0 : { *(.stab.excl) }
303 .stab.exclstr 0 : { *(.stab.exclstr) }
304 .stab.index 0 : { *(.stab.index) }
305 .stab.indexstr 0 : { *(.stab.indexstr) }
306 .comment 0 : { *(.comment) }
309 * These must never be empty
310 * If you have to comment these two assert statements out, your
311 * binutils is too old (for other reasons as well)
313 ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
314 ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined")