Compile error on 2.6.10-rc1-mm1
From: Hariprasad Nellitheertha
Date: Fri Oct 29 2004 - 04:42:37 EST
Hi Andrew,
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.
I am not completely sure though if this does not have any
side effects. Could you kindly review this patch and let me
know if it looks ok.
If we can use this patch, it will spare us from having to
upgrade to the newer binutils package.
Regards, Hari
Signed-off-by: Hariprasad Nellitheertha <hari@xxxxxxxxxx>
---
linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
diff -puN arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error arch/i386/kernel/vmlinux.lds.S
--- linux-2.6.10-rc1/arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error 2004-10-28 15:15:43.000000000 +0530
+++ linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S 2004-10-28 15:18:04.000000000 +0530
@@ -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);
_