Error compilando el kernel

Bueno ha llegado la epoca de examenes, y como buen estudiante [angelito] toca distraerse con cualquiera cosa.


Vereis, aprovechando que hace cuatro dias que salieron los nuevos drivers de nvidia, decidi aprovechar para actualizar el kernel a la version 2.6.11.11.
El problema está en que al realizar el 'make bzImage' sale el error:
Error: suffix or operands invalid for `mov'
unas cuantas veces.

A continuacion adjunto la salida del 'make bzImage V=1'
[root@phoenix linux-2.6.11.11]# make V=1 bzImage                 
if test ! /usr/src/kernel/linux-2.6.11.11 -ef /usr/src/kernel/linux-2.6.11.11; then \
/bin/sh /usr/src/kernel/linux-2.6.11.11/scripts/mkmakefile              \
    /usr/src/kernel/linux-2.6.11.11 /usr/src/kernel/linux-2.6.11.11 2 6         \
    > /usr/src/kernel/linux-2.6.11.11/Makefile;                                 \
    echo '  GEN    /usr/src/kernel/linux-2.6.11.11/Makefile';                   \
fi
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  SYMLINK include/asm -> include/asm-i386
if [ ! -d include ]; then mkdir -p include; fi;
make -f /usr/src/kernel/linux-2.6.11.11/Makefile silentoldconfig
make -f scripts/Makefile.build obj=scripts/basic
  gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/basic/fixdep scripts/basic/fixdep.c
  gcc -Wp,-MD,scripts/basic/.split-include.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/basic/split-include scripts/basic/split-include.c
  gcc -Wp,-MD,scripts/basic/.docproc.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/basic/docproc scripts/basic/docproc.c
if test ! /usr/src/kernel/linux-2.6.11.11 -ef /usr/src/kernel/linux-2.6.11.11; then \
/bin/sh /usr/src/kernel/linux-2.6.11.11/scripts/mkmakefile              \
    /usr/src/kernel/linux-2.6.11.11 /usr/src/kernel/linux-2.6.11.11 2 6         \
    > /usr/src/kernel/linux-2.6.11.11/Makefile;                                 \
    echo '  GEN    /usr/src/kernel/linux-2.6.11.11/Makefile';                   \
fi
make -f scripts/Makefile.build obj=scripts/kconfig silentoldconfig
  cat scripts/kconfig/zconf.tab.h_shipped > scripts/kconfig/zconf.tab.h
  gcc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
  gcc -Wp,-MD,scripts/kconfig/.mconf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -c -o scripts/kconfig/mconf.o scripts/kconfig/mconf.c
  cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c
  cat scripts/kconfig/lex.zconf.c_shipped > scripts/kconfig/lex.zconf.c
  gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer      -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
  gcc  -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o 
scripts/kconfig/conf -s arch/i386/Kconfig
#
# using defaults found in .config
#
  SPLIT   include/linux/autoconf.h -> include/config/*
make -f scripts/Makefile.build obj=scripts/basic
make -f scripts/Makefile.build obj=scripts
make -f scripts/Makefile.build obj=scripts/mod
  gcc -Wp,-MD,scripts/mod/.empty.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=empty -DKBUILD_MODNAME=empty -c -o scripts/mod/empty.o scripts/mod/empty.c
  gcc -Wp,-MD,scripts/mod/.mk_elfconfig.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/mod/mk_elfconfig scripts/mod/mk_elfconfig.c
  scripts/mod/mk_elfconfig i386 < scripts/mod/empty.o > scripts/mod/elfconfig.h
  gcc -Wp,-MD,scripts/mod/.file2alias.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -c -o scripts/mod/file2alias.o scripts/mod/file2alias.c
  gcc -Wp,-MD,scripts/mod/.modpost.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -c -o scripts/mod/modpost.o scripts/mod/modpost.c
  gcc -Wp,-MD,scripts/mod/.sumversion.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -c -o scripts/mod/sumversion.o scripts/mod/sumversion.c
  gcc  -o scripts/mod/modpost scripts/mod/modpost.o scripts/mod/file2alias.o scripts/mod/sumversion.o 
  gcc -Wp,-MD,scripts/.kallsyms.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/kallsyms scripts/kallsyms.c
  gcc -Wp,-MD,scripts/.pnmtologo.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/pnmtologo scripts/pnmtologo.c
  gcc -Wp,-MD,scripts/.conmakehash.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/conmakehash scripts/conmakehash.c
  gcc -Wp,-MD,scripts/.bin2c.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o scripts/bin2c scripts/bin2c.c
make -f scripts/Makefile.build obj=arch/i386/kernel arch/i386/kernel/asm-offsets.s
  gcc -Wp,-MD,arch/i386/kernel/.asm-offsets.s.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=asm_offsets -DKBUILD_MODNAME=asm_offsets -S -o arch/i386/kernel/asm-offsets.s arch/i386/kernel/asm-offsets.c
  CHK     include/asm-i386/asm_offsets.h
  UPD     include/asm-i386/asm_offsets.h
make -f scripts/Makefile.build obj=init
  gcc -Wp,-MD,init/.main.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=main -DKBUILD_MODNAME=main -c -o init/main.o init/main.c
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  gcc -Wp,-MD,init/.version.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=version -DKBUILD_MODNAME=version -c -o init/version.o init/version.c
  gcc -Wp,-MD,init/.do_mounts.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=do_mounts -DKBUILD_MODNAME=mounts -c -o init/do_mounts.o init/do_mounts.c
  ld -m elf_i386  -r -o init/mounts.o init/do_mounts.o
  gcc -Wp,-MD,init/.initramfs.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=initramfs -DKBUILD_MODNAME=initramfs -c -o init/initramfs.o init/initramfs.c
  gcc -Wp,-MD,init/.calibrate.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=calibrate -DKBUILD_MODNAME=calibrate -c -o init/calibrate.o init/calibrate.c
   ld -m elf_i386  -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/initramfs.o init/calibrate.o
make -f scripts/Makefile.build obj=usr
  gcc -Wp,-MD,usr/.gen_init_cpio.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer        -o usr/gen_init_cpio usr/gen_init_cpio.c
set -e; echo '  CHK     usr/initramfs_list'; mkdir -p usr/; /bin/sh /usr/src/kernel/linux-2.6.11.11/scripts/gen_initramfs_list.sh    > usr/initramfs_list.tmp; if [ -r usr/initramfs_list ] && cmp -s usr/initramfs_list usr/initramfs_list.tmp; then rm -f usr/initramfs_list.tmp; else echo '  UPD     usr/initramfs_list'; mv -f usr/initramfs_list.tmp usr/initramfs_list; fi
  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-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -D__ASSEMBLY__ -Iinclude/asm-i386/mach-default    -c -o usr/initramfs_data.o usr/initramfs_data.S
   ld -m elf_i386  -r -o usr/built-in.o usr/initramfs_data.o
make -f scripts/Makefile.build obj=arch/i386/kernel
  gcc -Wp,-MD,arch/i386/kernel/.process.o.d -nostdinc -isystem /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.4/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=athlon -Iinclude/asm-i386/mach-default      -DKBUILD_BASENAME=process -DKBUILD_MODNAME=process -c -o arch/i386/kernel/process.o arch/i386/kernel/process.c
{standard input}: Assembler messages:
{standard input}:874: Error: suffix or operands invalid for `mov'
{standard input}:875: Error: suffix or operands invalid for `mov'
{standard input}:1072: Error: suffix or operands invalid for `mov'
{standard input}:1073: Error: suffix or operands invalid for `mov'
{standard input}:1173: Error: suffix or operands invalid for `mov'
{standard input}:1174: Error: suffix or operands invalid for `mov'
{standard input}:1257: Error: suffix or operands invalid for `mov'
{standard input}:1258: Error: suffix or operands invalid for `mov'
{standard input}:1332: Error: suffix or operands invalid for `mov'
{standard input}:1344: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/i386/kernel/process.o] Error 1
make: *** [arch/i386/kernel] Error 2
[root@phoenix linux-2.6.11.11]#



La configuración del kernel que he usado es la que tenia de versiones anteriores. Incluso he probado con la que hay en /proc/config.gz.
Otra cosa que he probado es de usar otra versión del gcc, he probado con 2.96, la 3.3.4 y hasta con la 4.

También he probado de compilar con otras versiones del kernel, como a la 2.6.8.1, 2.6.10, y un par de la serie 2.6.11.x

He hecho varias busquedas a google pero no he sacado nada claro. Asi que no me queda mas remedio que acudir a vosotros [Ooooo]

Alguien saber por donde puedo tirar?

Gracias de antemano

Salu2

PD: Adjunto mi .config del kernel por si sirve de algo
En la captura de pantalla se corta lo de la derecha del todo. Si se sabe qué estaba compilando justo cuando ha fallado, podria probarse a compilarlo como módulo, o de lo contrario en modo embeded y volver a probar.
Has echo un make clean y make mrproper antes de nada? A veces queda porqueria de compilaciones anteriores y no tira.
Y un oldconfig, que es una tontería, pero lo mismo se te ha pasado al recuperar la antigua config.
EDITO:
Como no me deja poner dos posts seguidos, pongo aqui lo que hiba a postear. Dejo el mensaje original abajo.


Como hiba a decir, ya he conseguido compilar el kernel, despues de hacer un STFW mas detallado.

El problema venia originado por la nueva version de binutils que se me instaló cuando actualize el kde a la version 3.4.1 a partir de lor repositorios de la cooker, la version que se instalo es la 2.16.90.0.2, la cual en su changelog indica que por una serie de cambios los kernel 2.4 i 2.6 no compilan, pero por suerte indica las url's de los parches a aplicar.

Asi que he descargado el parche, lo he aplicado y a compilar.
No hace falta decir que al final he conseguido compilarlo con el gcc-3.3(el 4.0 petava en un modulo)


Salu2


-------------------------
Si, ya he probado de hacer 'make mrproper' y 'make clean' y sigue en sus trece.
Haciendo un 'make bzImage' normal la compilacion falla en este punto:
CC      arch/i386/kernel/process.o
{standard input}: Assembler messages:
{standard input}:874: Error: suffix or operands invalid for `mov'
{standard input}:875: Error: suffix or operands invalid for `mov'
{standard input}:1072: Error: suffix or operands invalid for `mov'
{standard input}:1073: Error: suffix or operands invalid for `mov'
{standard input}:1173: Error: suffix or operands invalid for `mov'
{standard input}:1174: Error: suffix or operands invalid for `mov'
{standard input}:1257: Error: suffix or operands invalid for `mov'
{standard input}:1258: Error: suffix or operands invalid for `mov'
{standard input}:1332: Error: suffix or operands invalid for `mov'
{standard input}:1344: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/i386/kernel/process.o] Error 1
make: *** [arch/i386/kernel] Error 2


y no se, por el nombre del fichero, no se a que parte de la configuracion corresponde.

Por cierto, me he dado cuenta que en el primer mensaje no se adjuntó la configuracion.


Salu2


EDITO: Acabo de ver tu mensaje Maxtorete.
También he provado el make oldconfig cuando copio la configuracion, pero nada

Adjuntos

3 respuestas