[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel compilation failure



On Thu, Sep 29, 2005 at 07:02:13PM +0200, Gilles wrote:
> 
> Well... I'm completely confused now.
> 
> I retried a compilation, and got (in "kern.log"):
> 
> Sep 29 16:29:48 dusk kernel: [17767.440232] mv[32221] general protection rip:2aaaaaaac80e rsp:7ffffffbfc00 error:0
> 
> As usual, so to speak.
> (There were many of these, corresponding to yesterday's
> gcc's segfaults.)
> 
> Stubbornly, I tried again (compiling 2.6.13.2 under 2.6.13.2),
> and this time, it worked!
> And again, 5 or 6 times, no segmentation fault, no crash.
> 
> Strange, no?
> 
> 
> But, even stranger, I also tried to compile a 2.6.10 and a 2.6.11
> kernel, and for those, I consistently get:
> 
> [...]
>   CHK     usr/initramfs_list
>   UPD     usr/initramfs_list
>   ./usr/gen_init_cpio usr/initramfs_list > usr/initramfs_data.cpio
>   gzip -f -9 < usr/initramfs_data.cpio > usr/initramfs_data.cpio.gz
>   gcc -Wp,-MD,usr/.initramfs_data.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.0.2/include -D__KERNEL__ -Iinclude  -D__ASSEMBLY__    -c -o usr/initramfs_data.o usr/initramfs_data.S
>    ld -m elf_x86_64  -r -o usr/built-in.o usr/initramfs_data.o
> /usr/bin/make -f scripts/Makefile.build obj=arch/x86_64/kernel
>   gcc -Wp,-MD,arch/x86_64/kernel/.process.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.0.2/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -march=k8 -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks        -Wno-sign-compare -fno-asynchronous-unwind-tables -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wdeclaration-after-statement -Wno-pointer-sign    -DKBUILD_BASENAME=process -DKBUILD_MODNAME=process -c -o arch/x86_64/kernel/.tmp_process.o arch/x86_64/kernel/process.c
> {standard input}: Assembler messages:
> {standard input}:1059: Error: suffix or operands invalid for `mov'
> {standard input}:1082: Error: suffix or operands invalid for `mov'
> {standard input}:1608: Error: suffix or operands invalid for `mov'
> {standard input}:1609: Error: suffix or operands invalid for `mov'
> {standard input}:1610: Error: suffix or operands invalid for `mov'
> {standard input}:1611: Error: suffix or operands invalid for `mov'
> make[2]: *** [arch/x86_64/kernel/process.o] Error 1
> make[1]: *** [arch/x86_64/kernel] Error 2
> make[1]: Leaving directory `/home/eran/system/kernel/source/linux-2.6.11'
> make: *** [stamp-build] Error 2
> 
> 
> Between yesterday and today, I only did an 'apt-get dist-upgrade',
> and another memory test ("memtest") but didn't fiddle with the
> hardware.
> 
> How to make sense of this?

binutils 2.16 fixed a bug, which unfortunately whacks older kernels'
assembly code.  I think 2.6.12 includes the fixes already.

This patch fixed the compile problems with the new binutils in 2.6.8 for
me:

http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch

Len Sorensen



Reply to: