2005-04-17 02:20:36 +04:00
/* ld script to make m68k Linux kernel */
#include <asm-generic/vmlinux.lds.h>
2008-07-17 23:16:11 +04:00
#include <asm/page.h>
2005-04-17 02:20:36 +04:00
OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
OUTPUT_ARCH(m68k)
ENTRY(_start)
jiffies = jiffies_64 + 4;
SECTIONS
{
2006-12-09 12:34:38 +03:00
. = 0xE002000;
2005-04-17 02:20:36 +04:00
_text = .; /* Text and read-only data */
.text : {
2007-07-20 07:33:08 +04:00
*(.text.head)
2007-05-13 02:31:33 +04:00
TEXT_TEXT
2005-04-17 02:20:36 +04:00
SCHED_TEXT
2006-01-12 12:06:11 +03:00
LOCK_TEXT
2005-04-17 02:20:36 +04:00
*(.fixup)
*(.gnu.warning)
} :text = 0x4e75
RODATA
_etext = .; /* End of text section */
.data : { /* Data */
2007-05-17 15:38:44 +04:00
DATA_DATA
2005-04-17 02:20:36 +04:00
CONSTRUCTORS
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
} :data
/* End of data goes *here* so that freeing init code works properly. */
_edata = .;
2009-01-05 20:28:10 +03:00
NOTES
2005-04-17 02:20:36 +04:00
/* will be freed after init */
2008-07-17 23:16:11 +04:00
. = ALIGN(PAGE_SIZE); /* Init code and data */
2005-04-17 02:20:36 +04:00
__init_begin = .;
.init.text : {
_sinittext = .;
2008-01-20 16:15:03 +03:00
INIT_TEXT
2005-04-17 02:20:36 +04:00
_einittext = .;
}
2008-01-20 16:15:03 +03:00
.init.data : { INIT_DATA }
2005-04-17 02:20:36 +04:00
. = ALIGN(16);
__setup_start = .;
.init.setup : { *(.init.setup) }
__setup_end = .;
__initcall_start = .;
.initcall.init : {
2006-10-29 13:21:51 +03:00
INITCALLS
2005-04-17 02:20:36 +04:00
}
__initcall_end = .;
__con_initcall_start = .;
.con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .;
2007-05-31 11:40:50 +04:00
.m68k_fixup : {
__start_fixup = .;
*(.m68k_fixup)
__stop_fixup = .;
}
2005-04-17 02:20:36 +04:00
SECURITY_INIT
2007-02-10 12:44:44 +03:00
#ifdef CONFIG_BLK_DEV_INITRD
2008-07-17 23:16:11 +04:00
. = ALIGN(PAGE_SIZE);
2005-04-17 02:20:36 +04:00
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
2007-02-10 12:44:44 +03:00
#endif
2008-07-17 23:16:11 +04:00
. = ALIGN(PAGE_SIZE);
2005-04-17 02:20:36 +04:00
__init_end = .;
2006-01-12 12:06:38 +03:00
.data.init.task : { *(.data.init_task) }
2005-04-17 02:20:36 +04:00
.bss : { *(.bss) } /* BSS */
_end = . ;
/* Sections to be discarded */
/DISCARD/ : {
2008-01-20 16:15:03 +03:00
EXIT_TEXT
EXIT_DATA
2005-04-17 02:20:36 +04:00
*(.exitcall.exit)
}
.crap : {
/* Stabs debugging sections. */
*(.stab)
*(.stabstr)
*(.stab.excl)
*(.stab.exclstr)
*(.stab.index)
*(.stab.indexstr)
*(.comment)
*(.note)
}
}