diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-03 12:41:42 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-03 12:41:42 -0700 |
commit | 5c27d0f11e679e6e5b6b2047b8658409699d4a67 (patch) | |
tree | 605a63b8fbc45cf88c2905397727e6dade6b01b2 /arch/sh/kernel/vmlinux.lds.S | |
parent | 468f8afdf4f87378c7c7de1d636a9375fce4078d (diff) | |
parent | 352d281300df22c6d01cb550c6ac0336d977739d (diff) | |
download | kernel_samsung_crespo-5c27d0f11e679e6e5b6b2047b8658409699d4a67.zip kernel_samsung_crespo-5c27d0f11e679e6e5b6b2047b8658409699d4a67.tar.gz kernel_samsung_crespo-5c27d0f11e679e6e5b6b2047b8658409699d4a67.tar.bz2 |
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (24 commits)
sh: Update r7785rp defconfig.
sh: mach-type updates.
sh: Fix up r7780rp highlander CF access size.
sh: Terminate .eh_frame in VDSO with a 4-byte 0.
sh: Correct SUBARCH matching.
sh: Decouple 4k and soft/hardirq stacks.
sh: Fix optimized __copy_user() movca.l usage.
sh: Clean up SR.RB Kconfig mess.
sh: Kill off dead ipr_irq_demux().
sh: Make SH7750 oprofile compile again.
sh: Provide a __read_mostly section wrapper.
sh: linker script tidying.
sh: Move zero page param defs somewhere sensible.
sh: Use generic SMP_CACHE_BYTES/L1_CACHE_ALIGN.
sh: Kill off legacy embedded ramdisk section.
sh: Fix up early mem cmdline parsing.
sh: Enable USBF on MS7722SE.
sh: Add resource of USBF for SH7722.
maple: Fix maple bus compiler warning
sh: fix zImage build with >=binutils-2.18
...
Diffstat (limited to 'arch/sh/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/sh/kernel/vmlinux.lds.S | 201 |
1 files changed, 102 insertions, 99 deletions
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 6d5abba..0956fb3 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S @@ -1,4 +1,4 @@ -/* $Id: vmlinux.lds.S,v 1.8 2003/05/16 17:18:14 lethal Exp $ +/* * ld script to make SuperH Linux kernel * Written by Niibe Yutaka */ @@ -15,121 +15,124 @@ OUTPUT_ARCH(sh) ENTRY(_start) SECTIONS { - . = CONFIG_PAGE_OFFSET + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET; - _text = .; /* Text and read-only data */ - text = .; /* Text and read-only data */ - .empty_zero_page : { - *(.empty_zero_page) + . = CONFIG_PAGE_OFFSET + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET; + _text = .; /* Text and read-only data */ + + .empty_zero_page : { + *(.empty_zero_page) } = 0 - .text : { - *(.text.head) - TEXT_TEXT - SCHED_TEXT - LOCK_TEXT - *(.fixup) - *(.gnu.warning) + + .text : { + *(.text.head) + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT + KPROBES_TEXT + *(.fixup) + *(.gnu.warning) } = 0x0009 - . = ALIGN(16); /* Exception table */ - __start___ex_table = .; - __ex_table : { *(__ex_table) } - __stop___ex_table = .; + . = ALIGN(16); /* Exception table */ + __start___ex_table = .; + __ex_table : { *(__ex_table) } + __stop___ex_table = .; + + _etext = .; /* End of text section */ - _etext = .; /* End of text section */ + BUG_TABLE + NOTES + RO_DATA(PAGE_SIZE) - RODATA + . = ALIGN(THREAD_SIZE); + .data : { /* Data */ + *(.data.init_task) - BUG_TABLE + . = ALIGN(L1_CACHE_BYTES); + *(.data.cacheline_aligned) - .data : { /* Data */ - DATA_DATA + . = ALIGN(L1_CACHE_BYTES); + *(.data.read_mostly) - /* Align the initial ramdisk image (INITRD) on page boundaries. */ - . = ALIGN(PAGE_SIZE); - __rd_start = .; - *(.initrd) - . = ALIGN(PAGE_SIZE); - __rd_end = .; + . = ALIGN(PAGE_SIZE); + *(.data.page_aligned) - CONSTRUCTORS + __nosave_begin = .; + *(.data.nosave) + . = ALIGN(PAGE_SIZE); + __nosave_end = .; + + DATA_DATA + CONSTRUCTORS } - . = ALIGN(PAGE_SIZE); - .data.page_aligned : { *(.data.page_aligned) } - __nosave_begin = .; - .data_nosave : { *(.data.nosave) } - . = ALIGN(PAGE_SIZE); - __nosave_end = .; - - PERCPU(PAGE_SIZE) - - . = ALIGN(L1_CACHE_BYTES); - .data.cacheline_aligned : { *(.data.cacheline_aligned) } - - _edata = .; /* End of data section */ - - . = ALIGN(THREAD_SIZE); /* init_task */ - .data.init_task : { *(.data.init_task) } - - . = ALIGN(PAGE_SIZE); /* Init code and data */ - __init_begin = .; - _sinittext = .; - .init.text : { *(.init.text) } - _einittext = .; - .init.data : { *(.init.data) } - . = ALIGN(16); - __setup_start = .; - .init.setup : { *(.init.setup) } - __setup_end = .; - __initcall_start = .; - .initcall.init : { - INITCALLS - } - __initcall_end = .; - __con_initcall_start = .; - .con_initcall.init : { *(.con_initcall.init) } - __con_initcall_end = .; - SECURITY_INIT - - /* .exit.text is discarded at runtime, not link time, to deal with - references from .rodata */ - .exit.text : { *(.exit.text) } - .exit.data : { *(.exit.data) } + _edata = .; /* End of data section */ -#ifdef CONFIG_BLK_DEV_INITRD - . = ALIGN(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); /* Init code and data */ + __init_begin = .; + _sinittext = .; + .init.text : { *(.init.text) } + _einittext = .; + .init.data : { *(.init.data) } + + . = ALIGN(16); + __setup_start = .; + .init.setup : { *(.init.setup) } + __setup_end = .; - __initramfs_start = .; - .init.ramfs : { *(.init.ramfs) } - __initramfs_end = .; + __initcall_start = .; + .initcall.init : { + INITCALLS + } + __initcall_end = .; + __con_initcall_start = .; + .con_initcall.init : { *(.con_initcall.init) } + __con_initcall_end = .; + + SECURITY_INIT + +#ifdef CONFIG_BLK_DEV_INITRD + . = ALIGN(PAGE_SIZE); + __initramfs_start = .; + .init.ramfs : { *(.init.ramfs) } + __initramfs_end = .; #endif - . = ALIGN(4); - __machvec_start = .; - .machvec.init : { *(.machvec.init) } - __machvec_end = .; - - . = ALIGN(PAGE_SIZE); - .bss : { - __init_end = .; - __bss_start = .; /* BSS */ - *(.bss.page_aligned) - *(.bss) . = 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) + __machvec_start = .; + .machvec.init : { *(.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 : { *(.exit.text) } + .exit.data : { *(.exit.data) } + + . = ALIGN(PAGE_SIZE); + .bss : { + __init_end = .; + __bss_start = .; /* BSS */ + *(.bss.page_aligned) + *(.bss) + *(COMMON) + . = ALIGN(4); + _ebss = .; /* uClinux MTD sucks */ + _end = . ; } - STABS_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. + */ + /DISCARD/ : { + *(.exitcall.exit) + } - DWARF_DEBUG + STABS_DEBUG + DWARF_DEBUG } |