blob: e6c700eaf207174544687895522cb5b0405b0a01 [file] [log] [blame]
/* ld script to make Meta Linux kernel */
#include <asm/thread_info.h>
#include <asm/page.h>
#include <asm/cache.h>
#include <asm-generic/vmlinux.lds.h>
OUTPUT_FORMAT("elf32-metag", "elf32-metag", "elf32-metag")
OUTPUT_ARCH(metag)
ENTRY(__start)
_jiffies = _jiffies_64;
SECTIONS
{
. = CONFIG_PAGE_OFFSET;
_text = .;
__text = .;
__stext = .;
HEAD_TEXT_SECTION
.text : {
TEXT_TEXT
SCHED_TEXT
CPUIDLE_TEXT
LOCK_TEXT
KPROBES_TEXT
IRQENTRY_TEXT
SOFTIRQENTRY_TEXT
*(.text.*)
*(.gnu.warning)
}
__etext = .; /* End of text section */
__sdata = .;
RO_DATA_SECTION(PAGE_SIZE)
RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
__edata = .; /* End of data section */
EXCEPTION_TABLE(16)
NOTES
. = ALIGN(PAGE_SIZE); /* Init code and data */
___init_begin = .;
INIT_TEXT_SECTION(PAGE_SIZE)
INIT_DATA_SECTION(16)
.init.arch.info : {
___arch_info_begin = .;
*(.arch.info.init)
___arch_info_end = .;
}
PERCPU_SECTION(L1_CACHE_BYTES)
___init_end = .;
BSS_SECTION(0, PAGE_SIZE, 0)
__end = .;
. = ALIGN(PAGE_SIZE);
__heap_start = .;
DWARF_DEBUG
/* 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.
*/
DISCARDS
}