diff options
Diffstat (limited to 'arch/metag/kernel/vmlinux.lds.S')
| -rw-r--r-- | arch/metag/kernel/vmlinux.lds.S | 71 | 
1 files changed, 71 insertions, 0 deletions
diff --git a/arch/metag/kernel/vmlinux.lds.S b/arch/metag/kernel/vmlinux.lds.S new file mode 100644 index 00000000000..e12055e88bf --- /dev/null +++ b/arch/metag/kernel/vmlinux.lds.S @@ -0,0 +1,71 @@ +/* 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 +	LOCK_TEXT +	KPROBES_TEXT +	IRQENTRY_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 +}  | 
