| /* 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 | |
| } |