Ruby gem 编译在 aix 64 位机器上失败

发布于 2024-12-10 19:39:39 字数 1088 浏览 1 评论 0原文

我正在尝试在 aix 64 位机器上编译 ruby​​ 64 位。 我通过启用 libpthread 配置了 ruby​​。并编译相同。 但是当我尝试运行 ruby​​ setup.rb 时,出现以下错误:

/home/xyz/RUBY_64/lib/ruby/1.8/thread.so: load failed -
/home/xyz/RUBY_64/lib/ruby/1.8/thread.so (LoadError)
        from /home/xyz/RUBY_64/lib/ruby/1.8/thread.rb:5
        from /home/xyz/RUBY_64/lib/ruby/site_ruby/1.8/rubygems.rb:85:in
`require'
        from /home/xyz/RUBY_64/lib/ruby/site_ruby/1.8/rubygems.rb:85
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:81:in
`require'
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:81:in
`install_sources'
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:116:in
`run_hook'
        from setup.rb:1526:in `exec_task_traverse'
        from setup.rb:1342:in `exec_install'
        from setup.rb:1000:in `exec_install'
        from setup.rb:814:in `invoke'
        from setup.rb:773:in `invoke'
        from setup.rb:1578

我已尝试使用 ruby​​ -d 选项进行相同的操作,但它不再提供任何信息 信息。 另外,thread.so 上的 ldd 不显示任何依赖关系!

有什么想法吗?

I'm trying to compile ruby 64 bit on aix 64 bit box.
I configured ruby by enabling libpthread. and compiled the same.
But when i try to run ruby setup.rb, i get the following error:

/home/xyz/RUBY_64/lib/ruby/1.8/thread.so: load failed -
/home/xyz/RUBY_64/lib/ruby/1.8/thread.so (LoadError)
        from /home/xyz/RUBY_64/lib/ruby/1.8/thread.rb:5
        from /home/xyz/RUBY_64/lib/ruby/site_ruby/1.8/rubygems.rb:85:in
`require'
        from /home/xyz/RUBY_64/lib/ruby/site_ruby/1.8/rubygems.rb:85
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:81:in
`require'
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:81:in
`install_sources'
        from
/home/xyz/RubyAndRelatedGems/7.3/rubygems-0.9.4/./post-install.rb:116:in
`run_hook'
        from setup.rb:1526:in `exec_task_traverse'
        from setup.rb:1342:in `exec_install'
        from setup.rb:1000:in `exec_install'
        from setup.rb:814:in `invoke'
        from setup.rb:773:in `invoke'
        from setup.rb:1578

I've tried the same with ruby -d option and it does not give any more
information.
Also, ldd on thread.so does not show any dependencies!

any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岛歌少女 2024-12-17 19:39:39

好的。
我找到了原因。
问题出在 ruby​​ 的安装方式上。我通过禁用 libpthread 重新安装。这时我在 math.c 中遇到了问题。
我通过使用 -E 选项并重定向到临时文件对宏进行了显式扩展。
然后使用新文件重新编译。 (我还记得一些 ruby​​_thid 导致问题。我通过修改 eval.c 文件纠正了这个问题)

gcc -E -maix64 -O2 -maix64 -fPIC -I/<include dir> -c math.c > /tmp/math.c
mv /tmp/math.c ./math.c
gcc -maix64 -O2 -maix64 -fPIC -I/<include dir> -c math.c

Okay.
I found the reason.
The problem was the way ruby was installed. I reinstalled by disabling libpthread. At this time I got issues in math.c.
I did an explicit expansion of the macros by using -E option and redirecting to a temporary file.
then recompiled using the new file. (I also remember some ruby_thid causing issues. This i rectified by modifying eval.c file)

gcc -E -maix64 -O2 -maix64 -fPIC -I/<include dir> -c math.c > /tmp/math.c
mv /tmp/math.c ./math.c
gcc -maix64 -O2 -maix64 -fPIC -I/<include dir> -c math.c
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文