用gcc编译64位linux内核

时间:2009-09-03 00:02:10

标签: linux gcc 64-bit linux-kernel x86-64

在尝试使用gcc编译64位Linux内核时,我看到了 以下错误:

kernel / bounds.c:1:错误:32中不支持代码模型'kernel' 位模式
kernel / bounds.c:1:抱歉,未实现:64位模式未编译

这是 gcc -v 报告:
使用内置规格。
目标:i586-redhat-linux
配置为:../ 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- 插件--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的
螺纹型号:posix
gcc版本4.4.1 20090725(红帽4.4.1-2)(GCC)

我在内核make命令行上遗漏了什么? 或者是系统上存在的gcc不支持64位 汇编?

2 个答案:

答案 0 :(得分:5)

您的编译器是32位。

答案 1 :(得分:4)

你在运行什么系统?

如果主机系统以32位模式运行,则必须构建一个针对x86_64的交叉编译器。如果您的系统是64位系统,那么您的供应商应该为您提供一个能够构建64位可执行文件的系统编译器。

“uname -a”在你的系统上说什么?