Linux – compiling 64 bit linux kernel with gcc

64-bitlinux

While trying to compile a 64 bit linux kernel using gcc, I see the following error :

kernel/bounds.c:1: error: code model ‘kernel’ not supported in the 32 bit mode
kernel/bounds.c:1: sorry, unimplemented: 64-bit mode not compiled in

This is what gcc -v reports :
Using built-in specs.
Target: i586-redhat-linux
Configured with: ../configure –prefix=/usr –mandir=/usr/share/man — infodir=/usr/share/info –with-bugurl=http://bugzilla.redhat.com/ bugzilla –enable-bootstrap –enable-shared –enable-threads=posix — enable-checking=release –with-system-zlib –enable-__cxa_atexit — disable-libunwind-exceptions –enable-languages=c,c++,objc,obj-c+ +,java,fortran,ada –enable-java-awt=gtk –disable-dssi –enable- plugin –with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre — enable-libgcj-multifile –enable-java-maintainer-mode –with-ecj-jar=/ usr/share/java/eclipse-ecj.jar –disable-libjava-multilib –with-ppl — with-cloog –with-tune=generic –with-arch=i586 –build=i586-redhat- linux
Thread model: posix
gcc version 4.4.1 20090725 (Red Hat 4.4.1-2) (GCC)

Am i missing something on my kernel make command line ? Or is it the gcc present on the system does not support 64 bit compilation ?

Best Answer

From your gcc -v output it looks as if you are running on a 32-bit machine, is that correct ?

Target: i586-redhat-linux

Try specifying --with-arch=x86_64 insterad of i586.