-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 146762 b: refs/heads/master c: dce97c8 h: refs/heads/master v: v3
- Loading branch information
Paul Mundt
committed
May 9, 2009
1 parent
0263dfe
commit 237edc0
Showing
4 changed files
with
180 additions
and
348 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: c3e2586b794b12ffcdf69b4e547030b51e18e6d9 | ||
refs/heads/master: dce97c8cb2ad365fa87dc6924d99528c21c63912 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,181 @@ | ||
#ifdef CONFIG_SUPERH32 | ||
# include "vmlinux_32.lds.S" | ||
/* | ||
* ld script to make SuperH Linux kernel | ||
* Written by Niibe Yutaka and Paul Mundt | ||
*/ | ||
#ifdef CONFIG_SUPERH64 | ||
#define LOAD_OFFSET CONFIG_PAGE_OFFSET | ||
OUTPUT_ARCH(sh:sh5) | ||
#else | ||
# include "vmlinux_64.lds.S" | ||
OUTPUT_ARCH(sh) | ||
#ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux") | ||
#else | ||
OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-shbig-linux") | ||
#endif | ||
#endif | ||
|
||
#include <asm/thread_info.h> | ||
#include <asm/cache.h> | ||
#include <asm-generic/vmlinux.lds.h> | ||
|
||
ENTRY(_start) | ||
SECTIONS | ||
{ | ||
#ifdef CONFIG_PMB_FIXED | ||
. = CONFIG_PAGE_OFFSET + (CONFIG_MEMORY_START & 0x1fffffff) + | ||
CONFIG_ZERO_PAGE_OFFSET; | ||
#elif defined(CONFIG_32BIT) | ||
. = CONFIG_PAGE_OFFSET + CONFIG_ZERO_PAGE_OFFSET; | ||
#else | ||
. = CONFIG_PAGE_OFFSET + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET; | ||
#endif | ||
|
||
.empty_zero_page : AT(ADDR(.empty_zero_page) - LOAD_OFFSET) { | ||
*(.empty_zero_page) | ||
} = 0 | ||
|
||
.text : AT(ADDR(.text) - LOAD_OFFSET) { | ||
_text = .; /* Text and read-only data */ | ||
HEAD_TEXT | ||
TEXT_TEXT | ||
|
||
#ifdef CONFIG_SUPERH64 | ||
*(.text64) | ||
*(.text..SHmedia32) | ||
#endif | ||
|
||
SCHED_TEXT | ||
LOCK_TEXT | ||
KPROBES_TEXT | ||
IRQENTRY_TEXT | ||
*(.fixup) | ||
*(.gnu.warning) | ||
_etext = .; /* End of text section */ | ||
} = 0x0009 | ||
|
||
. = ALIGN(16); /* Exception table */ | ||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | ||
__start___ex_table = .; | ||
*(__ex_table) | ||
__stop___ex_table = .; | ||
} | ||
|
||
NOTES | ||
RO_DATA(PAGE_SIZE) | ||
|
||
/* | ||
* Code which must be executed uncached and the associated data | ||
*/ | ||
. = ALIGN(PAGE_SIZE); | ||
.uncached : AT(ADDR(.uncached) - LOAD_OFFSET) { | ||
__uncached_start = .; | ||
*(.uncached.text) | ||
*(.uncached.data) | ||
__uncached_end = .; | ||
} | ||
|
||
. = ALIGN(THREAD_SIZE); | ||
.data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ | ||
*(.data.init_task) | ||
|
||
. = ALIGN(L1_CACHE_BYTES); | ||
*(.data.cacheline_aligned) | ||
|
||
. = ALIGN(L1_CACHE_BYTES); | ||
*(.data.read_mostly) | ||
|
||
. = ALIGN(PAGE_SIZE); | ||
*(.data.page_aligned) | ||
|
||
__nosave_begin = .; | ||
*(.data.nosave) | ||
. = ALIGN(PAGE_SIZE); | ||
__nosave_end = .; | ||
|
||
DATA_DATA | ||
CONSTRUCTORS | ||
} | ||
|
||
_edata = .; /* End of data section */ | ||
|
||
. = ALIGN(PAGE_SIZE); /* Init code and data */ | ||
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { | ||
__init_begin = .; | ||
_sinittext = .; | ||
INIT_TEXT | ||
_einittext = .; | ||
} | ||
|
||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { INIT_DATA } | ||
|
||
. = ALIGN(16); | ||
.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 = .; | ||
} | ||
|
||
.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(PAGE_SIZE); | ||
.init.ramfs : AT(ADDR(.init_ramfs) - LOAD_OFFSET) { | ||
__initramfs_start = .; | ||
*(.init.ramfs) | ||
__initramfs_end = .; | ||
} | ||
#endif | ||
|
||
. = ALIGN(4); | ||
.machvec.init : AT(ADDR(.machvec.init) - LOAD_OFFSET) { | ||
__machvec_start = .; | ||
*(.machvec.init) | ||
__machvec_end = .; | ||
} | ||
|
||
PERCPU(PAGE_SIZE) | ||
|
||
/* | ||
* .exit.text is discarded at runtime, not link time, to deal with | ||
* references from __bug_table | ||
*/ | ||
.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { EXIT_TEXT } | ||
.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { EXIT_DATA } | ||
|
||
. = ALIGN(PAGE_SIZE); | ||
.bss : AT(ADDR(.bss) - LOAD_OFFSET) { | ||
__init_end = .; | ||
__bss_start = .; /* BSS */ | ||
*(.bss.page_aligned) | ||
*(.bss) | ||
*(COMMON) | ||
. = ALIGN(4); | ||
_ebss = .; /* uClinux MTD sucks */ | ||
_end = . ; | ||
} | ||
|
||
/* | ||
* When something in the kernel is NOT compiled as a module, the | ||
* module cleanup code and data are put into these segments. Both | ||
* can then be thrown away, as cleanup code is never called unless | ||
* it's a module. | ||
*/ | ||
/DISCARD/ : { | ||
*(.exitcall.exit) | ||
} | ||
|
||
STABS_DEBUG | ||
DWARF_DEBUG | ||
} |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.