2 * AVR32 linker script for the Linux kernel
4 * Copyright (C) 2004-2006 Atmel Corporation
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
10 #define LOAD_OFFSET 0x00000000
11 #include <asm-generic/vmlinux.lds.h>
13 OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
18 jiffies
= jiffies_64
+ 4;
22 . = CONFIG_ENTRY_ADDRESS
;
23 .init
: AT(ADDR(.init
) - LOAD_OFFSET
) {
30 * .exit.text is discarded at runtime, not
31 * link time, to deal with references from
49 __con_initcall_start
= .;
51 __con_initcall_end
= .;
52 __security_initcall_start
= .;
53 *(.security_initcall
.init
)
54 __security_initcall_end
= .;
55 #ifdef CONFIG_BLK_DEV_INITRD
57 __initramfs_start
= .;
66 .text
: AT(ADDR(.text
) - LOAD_OFFSET
) {
89 __ex_table
: AT(ADDR(__ex_table
) - LOAD_OFFSET
) {
90 __start___ex_table
= .;
92 __stop___ex_table
= .;
101 .data
: AT(ADDR(.data
) - LOAD_OFFSET
) {
105 * First, the init task union, aligned to an 8K boundary.
109 /* Then, the cacheline aligned data */
111 *(.data
.cacheline_aligned
)
113 /* And the rest... */
123 .bss
: AT(ADDR(.bss
) - LOAD_OFFSET
) {
132 /* When something in the kernel is NOT compiled as a module, the module
133 * cleanup code and data are put into these segments. Both can then be
134 * thrown away, as cleanup code is never called unless it's a module.