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

From: Jeffrey Hundstad
Date: Fri Dec 09 2005 - 17:37:14 EST


Lee Revell wrote:

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. But the build fails
with:

$ make ARCH=x86_64
[...]
CC init/initramfs.o



I have successfully done this using Debian/Sid.

1. I changed the linux/Makefile:
ARCH ?= x86_64
CROSS_COMPILE ?= x86_x64-linux-

2. The I changed the path to include the following /tmp/lin64/ directory:
PATH=/tmp/lin64:$PATH

3. I made a bunch of scripts as follows all in the /tmp/lin64/ directory:
x86_x64-linux-ar:
#!/bin/bash
ar $@

x86_x64-linux-gcc:
#!/bin/bash
has32=`echo "$@" | grep -- "-m32"`
if [ "$has32" = "" ] ; then
gcc -m64 $@
else
gcc $@
fi

x86_x64-linux-ld:
#!/bin/bash
ld -m64 $@

x86_x64-linux-nm:
#!/bin/bash
nm $@

x86_x64-linux-objcopy:
#!/bin/bash
objcopy $@

-
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/