| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- From 3aa2c28ff4271e9232b6c98ba000804de3ed3f33 Mon Sep 17 00:00:00 2001
- From: Kurt Mahan <[email protected]>
- 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 <[email protected]>
- ---
- 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 <[email protected]>
- + */
- +
- +#define LOAD_OFFSET 0x00000000
-
- #include <asm-generic/vmlinux.lds.h>
- +#include <asm/page_offset.h>
- +
- +#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
|