From: Hariprasad Nellitheertha The compile time error that few people have been seeing with the last couple of -mm releases are due to the changes introduced to arch/i386/kernel/vmlinux.lds.S to enable kexec based crashdumps. Since fixing this error needs an upgrade of the binutils package on those machines, I was looking at a possible workaround within the kernel code itself. The problem seems to arise from the fact that the .bss.page_aligned section (defined in head.S) is included within the .bss section. Older binutils does not export the proper physical address (LMA) for the .bss section. I made a patch which moves the .bss.page_aligned section to just before the .bss section. This compiles fine with both older and newer binutils packages. I have done some amount of testing with this change and it has not thrown up any problems. Signed-off-by: Hariprasad Nellitheertha Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/vmlinux.lds.S | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN arch/i386/kernel/vmlinux.lds.S~kexec-loading-kernel-from-non-default-offset-fix arch/i386/kernel/vmlinux.lds.S --- 25/arch/i386/kernel/vmlinux.lds.S~kexec-loading-kernel-from-non-default-offset-fix Mon Nov 1 14:30:14 2004 +++ 25-akpm/arch/i386/kernel/vmlinux.lds.S Mon Nov 1 14:30:14 2004 @@ -117,8 +117,9 @@ SECTIONS /* freed after init ends here */ __bss_start = .; /* BSS */ + .bss.page_aligned : AT(ADDR(.bss.page_aligned) - LOAD_OFFSET) { + *(.bss.page_aligned) } .bss : AT(ADDR(.bss) - LOAD_OFFSET) { - *(.bss.page_aligned) *(.bss) } . = ALIGN(4); _