如何配置ruby以在AIX上以64位模式进行编译

我下载了ruby 2.0.0并运行了

./configure make make install 

在64位Linux机器上,这构建了一个64位版本。 在AIX上,这构建了一个32位版本。 如何配置它以64位模式编译?

我试过了

 export OBJECT_MODE=64 ./configure 

但它检查gcc是否失败… gcc检查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 

测试通过,似乎运行良好,不幸的是我的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' 

也许我会就这个问题开始一个新的问题

这将是一场艰苦的斗争。

首先,看看是否可以在gcc命令行中添加-mpowerpc64 -maix64来构建一个简单的hello世界。 例如

 gcc -mpowerpc64 -maix64 -o foo foo.c 

我建议的原因是我必须做额外的工作来构建我的gcc以获得它在64位模式下使用的所有库。 即使它确实有效,你仍然可能没有所需的所有库,你需要使用ruby及其所有扩展才能工作。

我通过以下的第一个基地:

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

但它死了,我通过添加-Wl,-bbigtoc过去了。 然后ar失败了,因为没有人通过它-X 64标志。 你可以通过编辑Makefile来改变它,并将AR的设置更改为ar -X64。 等等

这里的要点是使用configure来关闭,然后手动编辑Makefile和其他文件,以添加您需要的标志。 我确信有一步解决方案,但这将使您免于每次重新开始。