2009-09-03 128 views
1

雖然試圖使用gcc來編譯64位Linux內核,我看到了 以下錯誤:編譯64位Linux內核使用GCC

內核/ bounds.c:1:錯誤:代碼模式「內核」不在32 位模式下支持
內核/ bounds.c:1:對不起,沒有實現:64位模式不

編譯這是-v gcc的報告
使用內置眼鏡。
目標: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 + 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-pp l - with-cloog --with-tune = generic --with-arch = i586 --build = i586-redhat- linux
線程模型:posix
gcc版本4.4.1 20090725(Red Hat 4.4。 1-2)(GCC)

我在內核make命令行中缺少一些東西嗎? 還是它的gcc目前在系統上不支持64位 彙編?

回答

5

您的編譯器是32位的。

+0

我在哪裏可以找到64位gcc?或者我如何編譯gcc來支持64位編譯? – vivekian2 2009-09-03 01:11:08

+0

在構建支持x86_64位的編譯器之後,內核構建仍然失敗。我嘗試爲kernel-devel-x86_64安裝fedora core rpm。這也失敗了。這是根源,因爲它是較早的P4 CPU,可能不支持64位。 – vivekian2 2009-09-06 17:09:35

+0

哦,如果你想改變你的操作系統的架構從32位到64位,你將完全重新安裝系統。但是,在大多數64位處理器上,所有32位將保持運行。 – 2009-09-06 17:28:07

4

你在運行什麼系統?

如果您的主機系統以32位模式運行,則必須構建一個定位x86_64的交叉編譯器。如果你的系統是一個64位系統,那麼你的供應商應該爲你提供一個系統編譯器,能夠構建64位可執行文件。

「uname -a」在你的系統上說什麼?

+0

我很確定它在32位模式下運行。 uname -a Linux host.vivekian.com 2.6.29.4-167.fc11.i586#1 SMP Wed May 27 17:14:37 EDT 2009 i686 i686 i386 GNU/Linux 如何構建gcc以將目標x86- 64? – vivekian2 2009-09-03 18:14:40