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

Xavier Bestel
2005-12-10T20:34:23Z

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,
Xav