Hi Linus. Davem asked me to look at the sparc64 linker script. It used a hardcoded alignment value of 8192 where the correct size is PAGE_SIZE (which may be 8192).
I have made both a minimal fix (see below) and a version where the linker script becomes as readable as linker scripts can be. ==== Fix that includes cleanup of vmlinux.lds for sparc64 The fix touches asm-generic/vmlinux.lds.h but will not impact other architectures. The patches can be pulled from: git pull git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix.git Patches has been sent to peer review at lkml + sparclinux. David asked me to mark them "Signed-off-by" but my understanding are that Signed-off-by: document the path of a patch so they are marked "Acked-by:". Here is shortlog + diffstat. Sam Ravnborg (5): sparc64: ident vmlinux.lds.S asm-generic: add RO_DATA which take alignment parameter sparc64: use PAGE_SIZE in vmlinux.lds asm-generic: add INITRAMFS to vmlinux.lds.h sparc64: use INITRAMFS in vmlinux.lds.h arch/sparc64/kernel/vmlinux.lds.S | 241 +++++++++++++++++++++---------------- include/asm-generic/vmlinux.lds.h | 22 +++- 2 files changed, 159 insertions(+), 104 deletions(-) ==== The minimal fix The minimal fix would be to just replace use of 8192 with PAGE_SIZE. This is indeed a much smaller patch. If you prefer the smaller patch considering the -rc progress I have pushed that out in the branch 'minimal'. In this case please pull from the branch minimal: git pull git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix.git minimal diffstat and diff for the minimal fix below. Sam arch/sparc64/kernel/vmlinux.lds.S | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index fb648de..7fdabed 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") @@ -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) } - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html