2014-01-31 56 views
1

我下載紅寶石2.0.0跑如何配置紅寶石在64位模式彙編關於AIX

./configure 
make 
make install 

在64位Linux機器此建一個64位版本。 在AIX上,它構建了一個32位版本。我如何配置它以64位模式編譯?

我試圖

export OBJECT_MODE=64 
./configure 

,但它與 失敗檢查海合會...海灣合作委員會 檢查C編譯器是否工作......沒有

更新: 我設法得到這個用下面的代碼編譯:

export OBJECT_MODE=64 ## not sure if I needed this or not 
./configure --disable-install-doc CC="gcc" CFLAGS="-maix64 -mminimal-toc" CXX="g++" CXXFLAGS="-maix64 -mminimal-toc" NM="nm -X64" AR="ar -X64" LDFLAGS="-maix64" EXTLDFLAGS="-maix64" 
make 
make test 
make install 

the tests pas sed和它似乎運行良好 不幸的是我的swig生成的擴展(在Linux上運行良好)有問題。它編譯和鏈接乾淨,但我得到一個錯誤的要求:

.....ruby/aix/lib/ruby/site_ruby/2.0.0/powerpc-aix6.1.0.0/wv.so. Not enough space[loadquery failed] 
.....ruby/aix/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require' 

也許我將開始新的問題,對問題

回答

2

這將是一場艱苦的鬥爭。

首先,看看您是否可以用-mpowerpc64 -maix64添加到gcc命令行來構建一個簡單的hello world。例如

gcc -mpowerpc64 -maix64 -o foo foo.c 

的原因,我認爲這是我必須做額外的工作來建立我的gcc得到它在64位模式使用的所有庫。即使這樣做有效,你仍然可能沒有可用的所有庫來獲得ruby及其所有擴展的工作。

我過去的第一個基地:

CFLAGS='-mpowerpc64 -maix64' configure ... 

,但它與TOC太大,我加入輪候冊,-bbigtoc了過去死亡。但是然後ar失敗了,因爲沒有人通過它-X 64標誌。您可以通過編輯Makefile並將AR設置爲ar -X64來解決這個問題。等

這裏的要點是使用配置來關閉,然後手動編輯Makefile和其他文件添加您需要的標誌。我確信有一個步驟的解決方案,但這可以幫助您避免每次重新開始。

+0

感謝pedz。這是一場艱苦的戰鬥。 – nPn

+1

這可能違反SO規則,但我會很好奇你需要修改什麼。 – pedz

+0

不確定你的修飾是什麼意思?我所做的只是使用上面包含的選項運行./configure,並且能夠乾淨地編譯 – nPn