Компиляция Ruby gem завершилась неудачно в 64-битной системе AIX - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь скомпилировать 64-битную Ruby на 64-битной коробке AIX. Я настроил ruby, включив libpthread. и собрал то же самое. Но когда я пытаюсь запустить 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, и он больше не дает Информация. Кроме того, ldd на thread.so не показывает никаких зависимостей!

есть идеи?

1 Ответ

0 голосов
/ 10 января 2012

Хорошо. Я нашел причину. Проблема была в том, как был установлен ruby. Я переустановил, отключив libpthread. На этот раз у меня возникли проблемы в математике. Я сделал явное расширение макросов, используя опцию -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
...