Subject: [ruby-ffi] FFI 1.0.6 fails to compile |
From: Quintus |
Date: 3/12/11 2:45 AM |
To: ruby-ffi |
Hi there, I've been trying to update my ffi gem today, but it didn't work out. Here's the update log: ============================= $ sudo gem update ffi Passwort: Updating installed gems Updating ffi Building native extensions. This could take a while... ERROR: Error installing ffi: ERROR: Failed to build gem native extension. /opt/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb checking for ffi_call() in -lffi... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/opt/rubies/ruby-1.9.2-p180/bin/ruby --with-ffi_c-dir --without-ffi_c-dir --with-ffi_c-include --without-ffi_c-include=${ffi_c-dir}/include --with-ffi_c-lib --without-ffi_c-lib=${ffi_c-dir}/lib --with-libffi-config --without-libffi-config --with-pkg-config --without-pkg-config --with-ffilib --without-ffilib /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:440:in `try_link' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:552:in `try_func' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:748:in `block in have_library' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:276:in `postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:743:in `have_library' from extconf.rb:10:in `<main>' Gem files will remain installed in /opt/rubies/ruby-1.9.2-p180/lib/ ruby/gems/1.9.1/gems/ffi-1.0.6 for inspection. Results logged to /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1/gems/ ffi-1.0.6/ext/ffi_c/gem_make.out Nothing to update ============================= The gem_make.out file says this: ============================= $ cat /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1/gems/ffi-1.0.6/ ext/ffi_c/gem_make.out /opt/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb checking for ffi_call() in -lffi... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/opt/rubies/ruby-1.9.2-p180/bin/ruby --with-ffi_c-dir --without-ffi_c-dir --with-ffi_c-include --without-ffi_c-include=${ffi_c-dir}/include --with-ffi_c-lib --without-ffi_c-lib=${ffi_c-dir}/lib --with-libffi-config --without-libffi-config --with-pkg-config --without-pkg-config --with-ffilib --without-ffilib /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:440:in `try_link' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:552:in `try_func' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:748:in `block in have_library' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:276:in `postpone' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for' from /opt/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:743:in `have_library' from extconf.rb:10:in `<main>' ============================= The libffi I have installed however *does* have the ffi_call symbol: ============================= $ objdump -T /usr/lib/libffi.so | grep ffi_call 0000000000005c1c g DF .text 000000000000016e Base ffi_call_unix64 0000000000005800 g DF .text 000000000000041a Base ffi_call ============================= I'm running Arch Linux with these things: ============================= $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] $ gem env RubyGems Environment: - RUBYGEMS VERSION: 1.6.2 - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-linux] - INSTALLATION DIRECTORY: /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/ 1.9.1 - RUBY EXECUTABLE: /opt/rubies/ruby-1.9.2-p180/bin/ruby - EXECUTABLE DIRECTORY: /opt/rubies/ruby-1.9.2-p180/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1 - /home/quintus/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - "install" => "--format-executable" - "update" => "--format-executable" - "rdoc" => "--format=hanna" - REMOTE SOURCES: - http://rubygems.org/ $ LANG=EN_US gcc --version gcc (GCC) 4.5.2 20110127 (prerelease) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ LANG=EN_US pacman -Qi libffi Name : libffi Version : 3.0.9-1 URL : http://sourceware.org/libffi Licenses : MIT Groups : None Provides : None Depends On : glibc texinfo Optional Deps : None Required By : gobject-introspection python python2 Conflicts With : None Replaces : None Installed Size : 180.00 K Packager : Jan de Groot <jgc@archlinux.org> Architecture : x86_64 Build Date : Sat Mar 13 21:42:37 2010 Install Date : Fri Nov 26 21:31:34 2010 Install Reason : Installed as a dependency for another package Install Script : Yes Description : A portable, high level programming interface to various calling conventions. ============================= What am I missing? Valete, Marvin