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);
_