Re: i386 -> x86_64 cross compile failure (binutils bug?)

From: Lee Revell
Date: Sat Dec 10 2005 - 16:24:35 EST


On Sat, 2005-12-10 at 21:34 +0100, Xavier Bestel wrote:
> Le vendredi 09 décembre 2005 à 20:31 -0500, Lee Revell a écrit :
> > On Fri, 2005-12-09 at 23:43 +0100, Xavier Bestel wrote:
> > > Le vendredi 09 décembre 2005 à 13:50 -0500, Lee Revell a écrit :
> > > > I'm trying to build an x66-64 kernel on a 32 bit system (Ubuntu 5.10).
> > > > I added -m64 to the CFLAGS as per the gcc docs.
> > >
> > > Under debian 32bits with 64bits kernel, I just add -m64 somewhere in the
> > > main Makefile to rebuild my modules. Didn't try with a whole kernel
> > > though.
> >
> > The bug seems to be that the kernel build system does not grok biarch
> > toolchains - it really insists on a separate toolchain for i386 and
> > x86_64 even though the situation can be handled with selective use of
> > -m64. If I jsut add -m64 to everything then it fails when it gets to
> > the ia32 stuff.
>
> Yes, you shouldn't compile host executables with -m64, obviously.
>
> --- /usr/src/linux-headers-2.6.14-2/Makefile.old 2005-12-10 21:32:17.000000000 +0100
> +++ /usr/src/linux-headers-2.6.14-2/Makefile 2005-11-17 14:26:02.000000000 +0100
> @@ -352,7 +352,7 @@
>
> CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> -fno-strict-aliasing -fno-common \
> - -ffreestanding
> + -ffreestanding -m64
> AFLAGS := -D__ASSEMBLY__
>
> export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION KERNELRELEASE \
>
>
> HTH,

This would break native 32 bit kernel builds. Andi's patch seems to be
the correct solution.

Lee

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/