From 3aa2c28ff4271e9232b6c98ba000804de3ed3f33 Mon Sep 17 00:00:00 2001 From: Kurt Mahan Date: Mon, 26 Nov 2007 23:41:23 -0700 Subject: [PATCH] Rewrite coldfire linker script. LTIBName: mcfv4e-linker-script-update Signed-off-by: Kurt Mahan --- arch/m68k/coldfire/vmlinux-cf.lds | 107 ++++++++++++++++++++++++------------- arch/m68k/kernel/vmlinux.lds.S | 3 +- 2 files changed, 72 insertions(+), 38 deletions(-) --- a/arch/m68k/coldfire/vmlinux-cf.lds +++ b/arch/m68k/coldfire/vmlinux-cf.lds @@ -1,76 +1,115 @@ -/* ld script to make m68k Coldfire Linux kernel */ +/* ld script to make m68k Coldfire Linux kernel + * + * Derived from arch/m68k/kernel/vmlinux-std.lds + * + * Updated 11/26/2007 for new CodeSourcery toolset + * by Kurt Mahan + */ + +#define LOAD_OFFSET 0x00000000 #include +#include + +#define START_OFFSET 0x00020000 +#define IMAGE_START PAGE_OFFSET_RAW + START_OFFSET OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k") OUTPUT_ARCH(m68k) ENTRY(_stext) jiffies = jiffies_64 + 4; + SECTIONS { - . = 0xC0020000; - _text = .; /* Text and read-only data */ - .text : { + . = IMAGE_START; + .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) { + _text = .; /* Text and read-only data */ *(.text.head) + } :text = 0x4e75 + + .text : AT(ADDR(.text) - LOAD_OFFSET) { TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) *(.gnu.warning) - } :text = 0x4e75 - + } :text = 0x4e75 _etext = .; /* End of text section */ . = ALIGN(16); - __start___ex_table = .; - __ex_table : { *(__ex_table) } - __stop___ex_table = .; + __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { + __start___ex_table = .; + *(__ex_table) + __stop___ex_table = .; + } RODATA - .data : { /* Data */ + . = ALIGN(8192); + .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ DATA_DATA CONSTRUCTORS - } + } :data - .bss : { *(.bss) } /* BSS */ + .bss : AT(ADDR(.bss) - LOAD_OFFSET) { /* BSS */ + *(.bss) + } . = ALIGN(16); - .data.cacheline_aligned : { *(.data.cacheline_aligned) } :data + .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET ) { + *(.data.cacheline_aligned) + } :data _edata = .; /* End of data section */ . = ALIGN(8192); /* Initrd */ - __init_begin = .; - .init.text : { + .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { + __init_begin = .; _sinittext = .; *(.init.text) _einittext = .; } - .init.data : { *(.init.data) } + + .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { + *(.init.data) + } + . = ALIGN(16); - __setup_start = .; - .init.setup : { *(.init.setup) } - __setup_end = .; - __initcall_start = .; - .initcall.init : { + .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { + __setup_start = .; + *(.init.setup) + __setup_end = .; + } + + .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { + __initcall_start = .; INITCALLS + __initcall_end = .; } - __initcall_end = .; - __con_initcall_start = .; - .con_initcall.init : { *(.con_initcall.init) } - __con_initcall_end = .; + + .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { + __con_initcall_start = .; + *(.con_initcall.init) + __con_initcall_end = .; + } + SECURITY_INIT + #ifdef CONFIG_BLK_DEV_INITRD . = ALIGN(8192); - __initramfs_start = .; - .init.ramfs : { *(.init.ramfs) } - __initramfs_end = .; + .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { + __initramfs_start = .; + *(.init.ramfs) + __initramfs_end = .; + } #endif + . = ALIGN(8192); __init_end = .; - .data.init_task : { *(.data.init_task) } /* The initial task and kernel stack */ + .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { + *(.data.init_task) /* The initial task and kernel stack */ + } _end = . ; @@ -79,14 +118,8 @@ SECTIONS *(.exit.text) *(.exit.data) *(.exitcall.exit) - } + } /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } + STABS_DEBUG } --- a/arch/m68k/kernel/vmlinux.lds.S +++ b/arch/m68k/kernel/vmlinux.lds.S @@ -1,6 +1,7 @@ PHDRS { - text PT_LOAD FILEHDR PHDRS FLAGS (7); + headers PT_PHDR PHDRS ; + text PT_LOAD FILEHDR PHDRS FLAGS (5); data PT_LOAD FLAGS (7); } #ifdef CONFIG_SUN3