diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-31 12:33:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-31 12:33:16 -0700 |
commit | 54ca4123363f388ab724fc66da92b87dc05395c3 (patch) | |
tree | 8ff6a020410b1d08b4a765952e6cb62e3ae1a11d | |
parent | 51d7cfc670e4c09e296af101326a6270060e72e7 (diff) | |
parent | 4096b46f01a362fe2cc83f6be25cc7be6bce2ab7 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix:
sparc64: fix alignment bug in linker definition script
-rw-r--r-- | arch/sparc64/kernel/vmlinux.lds.S | 11 | ||||
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 10 |
2 files changed, 13 insertions, 8 deletions
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index fb648de18a8..3ad10f3027e 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S @@ -1,5 +1,6 @@ /* ld script to make UltraLinux kernel */ +#include <asm/page.h> #include <asm-generic/vmlinux.lds.h> OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc") @@ -23,7 +24,7 @@ SECTIONS _etext = .; PROVIDE (etext = .); - RODATA + RO_DATA(PAGE_SIZE) .data : { @@ -44,7 +45,7 @@ SECTIONS __ex_table : { *(__ex_table) } __stop___ex_table = .; - . = ALIGN(8192); + . = ALIGN(PAGE_SIZE); __init_begin = .; .init.text : { _sinittext = .; @@ -83,17 +84,17 @@ SECTIONS __sun4v_2insn_patch_end = .; #ifdef CONFIG_BLK_DEV_INITRD - . = ALIGN(8192); + . = ALIGN(PAGE_SIZE); __initramfs_start = .; .init.ramfs : { *(.init.ramfs) } __initramfs_end = .; #endif - . = ALIGN(8192); + . = ALIGN(PAGE_SIZE); __per_cpu_start = .; .data.percpu : { *(.data.percpu) } __per_cpu_end = .; - . = ALIGN(8192); + . = ALIGN(PAGE_SIZE); __init_end = .; __bss_start = .; .sbss : { *(.sbss) *(.scommon) } diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 8307b1bb337..84155eb67f1 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -14,8 +14,8 @@ *(.data) \ *(.data.init.refok) -#define RODATA \ - . = ALIGN(4096); \ +#define RO_DATA(align) \ + . = ALIGN((align)); \ .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start_rodata) = .; \ *(.rodata) *(.rodata.*) \ @@ -135,7 +135,11 @@ VMLINUX_SYMBOL(__end_rodata) = .; \ } \ \ - . = ALIGN(4096); + . = ALIGN((align)); + +/* RODATA provided for backward compatibility. + * All archs are supposed to use RO_DATA() */ +#define RODATA RO_DATA(4096) #define SECURITY_INIT \ .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \ |