diff options
| author | Nelson Elhage <nelhage@ksplice.com> | 2009-09-18 15:52:08 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-18 16:57:18 -0400 |
| commit | 9c88b25bcfde51eccf2cca13d933a2948d0ca4eb (patch) | |
| tree | 01802b8aaeba42f5a4435eb6b0a39e924bc5fc72 | |
| parent | 88ddb81e0f56cc7b603174d9666ecc80237425a0 (diff) | |
frv: clean up linker script using new linker script macros.
This is largely a straightforward conversion. The patch results in
fewer output sections, and some data being reordered, but should have
no functional impact.
Also, note that this patch moves some data (namely, init_task and
cacheline-aligned) inside [_sdata,_edata].
Because frv already builds using -ffunction-sections -fdata-sections,
we can't use BSS_SECTION or RW_DATA_SECTION yet, since they do not
currently include the required .bss.* and .data.* sections.
Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/frv/kernel/vmlinux.lds.S | 61 |
1 files changed, 7 insertions, 54 deletions
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index cfb41813193c..cbe811fccfcc 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S | |||
| @@ -35,45 +35,13 @@ SECTIONS | |||
| 35 | #endif | 35 | #endif |
| 36 | } | 36 | } |
| 37 | _einittext = .; | 37 | _einittext = .; |
| 38 | .init.data : { INIT_DATA } | ||
| 39 | |||
| 40 | . = ALIGN(8); | ||
| 41 | __setup_start = .; | ||
| 42 | .setup.init : { KEEP(*(.init.setup)) } | ||
| 43 | __setup_end = .; | ||
| 44 | |||
| 45 | __initcall_start = .; | ||
| 46 | .initcall.init : { | ||
| 47 | INITCALLS | ||
| 48 | } | ||
| 49 | __initcall_end = .; | ||
| 50 | __con_initcall_start = .; | ||
| 51 | .con_initcall.init : { *(.con_initcall.init) } | ||
| 52 | __con_initcall_end = .; | ||
| 53 | SECURITY_INIT | ||
| 54 | 38 | ||
| 39 | INIT_DATA_SECTION(8) | ||
| 55 | PERCPU(4096) | 40 | PERCPU(4096) |
| 56 | 41 | ||
| 57 | #ifdef CONFIG_BLK_DEV_INITRD | 42 | . = ALIGN(PAGE_SIZE); |
| 58 | . = ALIGN(4096); | ||
| 59 | __initramfs_start = .; | ||
| 60 | .init.ramfs : { *(.init.ramfs) } | ||
| 61 | __initramfs_end = .; | ||
| 62 | #endif | ||
| 63 | |||
| 64 | . = ALIGN(THREAD_SIZE); | ||
| 65 | __init_end = .; | 43 | __init_end = .; |
| 66 | 44 | ||
| 67 | /* put sections together that have massive alignment issues */ | ||
| 68 | . = ALIGN(THREAD_SIZE); | ||
| 69 | .data.init_task : { | ||
| 70 | /* init task record & stack */ | ||
| 71 | *(.data.init_task) | ||
| 72 | } | ||
| 73 | |||
| 74 | . = ALIGN(L1_CACHE_BYTES); | ||
| 75 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } | ||
| 76 | |||
| 77 | .trap : { | 45 | .trap : { |
| 78 | /* trap table management - read entry-table.S before modifying */ | 46 | /* trap table management - read entry-table.S before modifying */ |
| 79 | . = ALIGN(8192); | 47 | . = ALIGN(8192); |
| @@ -119,13 +87,12 @@ SECTIONS | |||
| 119 | 87 | ||
| 120 | } | 88 | } |
| 121 | 89 | ||
| 122 | . = ALIGN(8); /* Exception table */ | 90 | EXCEPTION_TABLE(8) |
| 123 | __start___ex_table = .; | ||
| 124 | __ex_table : { KEEP(*(__ex_table)) } | ||
| 125 | __stop___ex_table = .; | ||
| 126 | 91 | ||
| 127 | _sdata = .; | 92 | _sdata = .; |
| 128 | .data : { /* Data */ | 93 | .data : { /* Data */ |
| 94 | INIT_TASK_DATA(THREAD_SIZE) | ||
| 95 | CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) | ||
| 129 | DATA_DATA | 96 | DATA_DATA |
| 130 | *(.data.*) | 97 | *(.data.*) |
| 131 | EXIT_DATA | 98 | EXIT_DATA |
| @@ -154,22 +121,8 @@ SECTIONS | |||
| 154 | . = ALIGN(PAGE_SIZE); | 121 | . = ALIGN(PAGE_SIZE); |
| 155 | __kernel_image_end = .; | 122 | __kernel_image_end = .; |
| 156 | 123 | ||
| 157 | /* Stabs debugging sections. */ | 124 | STABS_DEBUG |
| 158 | .stab 0 : { *(.stab) } | 125 | DWARF_DEBUG |
| 159 | .stabstr 0 : { *(.stabstr) } | ||
| 160 | .stab.excl 0 : { *(.stab.excl) } | ||
| 161 | .stab.exclstr 0 : { *(.stab.exclstr) } | ||
| 162 | .stab.index 0 : { *(.stab.index) } | ||
| 163 | .stab.indexstr 0 : { *(.stab.indexstr) } | ||
| 164 | |||
| 165 | .debug_line 0 : { *(.debug_line) } | ||
| 166 | .debug_info 0 : { *(.debug_info) } | ||
| 167 | .debug_abbrev 0 : { *(.debug_abbrev) } | ||
| 168 | .debug_aranges 0 : { *(.debug_aranges) } | ||
| 169 | .debug_frame 0 : { *(.debug_frame) } | ||
| 170 | .debug_pubnames 0 : { *(.debug_pubnames) } | ||
| 171 | .debug_str 0 : { *(.debug_str) } | ||
| 172 | .debug_ranges 0 : { *(.debug_ranges) } | ||
| 173 | 126 | ||
| 174 | .comment 0 : { *(.comment) } | 127 | .comment 0 : { *(.comment) } |
| 175 | 128 | ||
