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

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

 



On Fri, 2005-12-09 at 19:50 +0000, Ken Moffat wrote:
> On Fri, 9 Dec 2005, 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
> >  CC      init/calibrate.o
> >  LD      init/built-in.o
> >  CHK     usr/initramfs_list
> >  CC      arch/x86_64/kernel/process.o
> >  CC      arch/x86_64/kernel/signal.o
> >  AS      arch/x86_64/kernel/entry.o
> > arch/x86_64/kernel/entry.S: Assembler messages:
> > arch/x86_64/kernel/entry.S:204: Error: cannot represent relocation type BFD_RELOC_X86_64_32S
> 
>   Unless ubuntu provides a biarch toolchain (and the fact gcc accepts 
> '-m64' means nothing - use 'file' on init/built-in.o), you have to build 
> a cross toolchain, (just binutils and gcc), put that on your path, and 
> use
> 
> make ARCH=x86_64 CROSS_COMPILE=x86_64-pc-linux-gnu-
> 
>   so that the build will use x86_64-pc-linux-gnu-as and friends.  You 
> should not need to mess with the CFLAGS.
> 

$ file init/built-in.o 
init/built-in.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1
(SYSV), not stripped

>From man gcc, i386 section:

-m32
-m64
    Generate code for a 32-bit or 64-bit environment.  The 32-bit 
    environment sets int, long and pointer to 32
    bits and generates code that runs on any i386 system.  The 
    64-bit environment sets int to 32 bits and long
    and pointer to 64 bits and generates code for AMD's x86-64 
    architecture.

Lee

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux