mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
f84f52a5c1
There is a lot of years of collected cruft in the m68knommu linker script. Clean it all up and use the well defined linker script support macros. Support is maintained for building both ROM/FLASH based and RAM based setups. No major changes to section layouts, though the rodata section is now lumped in with the read/write data section. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
93 lines
1.4 KiB
Text
93 lines
1.4 KiB
Text
/*
|
|
* vmlinux.lds.S -- master linker script for m68knommu arch
|
|
*
|
|
* (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com>
|
|
*
|
|
* This linker script is equipped to build either ROM loaded or RAM
|
|
* run kernels.
|
|
*/
|
|
|
|
#if defined(CONFIG_RAMKERNEL)
|
|
#define KTEXT_ADDR CONFIG_KERNELBASE
|
|
#endif
|
|
#if defined(CONFIG_ROMKERNEL)
|
|
#define KTEXT_ADDR CONFIG_ROMSTART
|
|
#define KDATA_ADDR CONFIG_KERNELBASE
|
|
#define LOAD_OFFSET KDATA_ADDR + (ADDR(.text) + SIZEOF(.text))
|
|
#endif
|
|
|
|
#include <asm/page.h>
|
|
#include <asm/thread_info.h>
|
|
#include <asm-generic/vmlinux.lds.h>
|
|
|
|
OUTPUT_ARCH(m68k)
|
|
ENTRY(_start)
|
|
|
|
jiffies = jiffies_64 + 4;
|
|
|
|
SECTIONS {
|
|
|
|
#ifdef CONFIG_ROMVEC
|
|
. = CONFIG_ROMVEC;
|
|
.romvec : {
|
|
__rom_start = .;
|
|
_romvec = .;
|
|
*(.romvec)
|
|
*(.data..initvect)
|
|
}
|
|
#endif
|
|
|
|
. = KTEXT_ADDR;
|
|
|
|
_text = .;
|
|
_stext = .;
|
|
.text : {
|
|
HEAD_TEXT
|
|
TEXT_TEXT
|
|
SCHED_TEXT
|
|
LOCK_TEXT
|
|
*(.fixup)
|
|
. = ALIGN(16);
|
|
}
|
|
_etext = .;
|
|
|
|
#ifdef KDATA_ADDR
|
|
. = KDATA_ADDR;
|
|
#endif
|
|
|
|
_sdata = .;
|
|
RO_DATA_SECTION(PAGE_SIZE)
|
|
RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
|
|
_edata = .;
|
|
|
|
EXCEPTION_TABLE(16)
|
|
NOTES
|
|
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_begin = .;
|
|
INIT_TEXT_SECTION(PAGE_SIZE)
|
|
INIT_DATA_SECTION(16)
|
|
PERCPU_SECTION(16)
|
|
.m68k_fixup : {
|
|
__start_fixup = .;
|
|
*(.m68k_fixup)
|
|
__stop_fixup = .;
|
|
}
|
|
.init.data : {
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_end = .;
|
|
}
|
|
|
|
_sbss = .;
|
|
BSS_SECTION(0, 0, 0)
|
|
_ebss = .;
|
|
|
|
_end = .;
|
|
|
|
STABS_DEBUG
|
|
.comment 0 : { *(.comment) }
|
|
|
|
/* Sections to be discarded */
|
|
DISCARDS
|
|
}
|
|
|