From: Matt Harrison <iwasinnamuknow@genestate.com>
To: gentoo-user@lists.gentoo.org
Subject: [gentoo-user] installing ffi gem
Date: Fri, 22 Apr 2011 00:57:13 +0100 [thread overview]
Message-ID: <20110421235713.GA18633@genestate.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 711 bytes --]
I've just tried setting up a new development machine and I'm stuck installing the ffi
gem for ruby.
According to a bug I found (can't find it now I'm afraid) the gentoo devs do not
support installing gems via the gem command and directed the user to use the
dev-ruby/ffi package. Unfortnately, that package is absolutely ancient and unusable.
Anyway, I've got the ffi library install from portage, but when I try to `gem install
ffi`, I get the output seen in the attachement.
The same gem installs just fine on an ubuntu box, but...well it's ubuntu and I don't
want to use that (besides it's just a VM).
I'd really like to get this fixed so I can get started on a new project.
Grateful for any help
Matt
[-- Attachment #1.2: output.txt --]
[-- Type: text/plain, Size: 8014 bytes --]
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.
/usr/bin/ruby18 extconf.rb
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... yes
checking for ffi_prep_raw_closure()... yes
checking for rb_thread_blocking_region()... no
checking for ruby_thread_has_gvl_p()... no
checking for ruby_native_thread_p()... no
checking for rb_thread_call_with_gvl()... no
creating extconf.h
creating Makefile
make
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c DynamicLibrary.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Buffer.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c MemoryPointer.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c StructByReference.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c StructByValue.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c StructLayout.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Thread.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c DataConverter.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Types.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c AbstractMemory.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Platform.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c ArrayType.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c ffi.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c LastError.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c FunctionInfo.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c MappedType.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Variadic.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Function.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Call.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Type.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Pointer.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c MethodHandle.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c ClosurePool.c
i686-pc-linux-gnu-gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DRUBY_EXTCONF_H=\"extconf.h\" -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=i686 -pipe -fno-strict-aliasing -fPIC -I/usr/lib/libffi-3.0.9/include -Wno-declaration-after-statement -c Struct.c
i686-pc-linux-gnu-gcc -shared -o ffi_c.so DynamicLibrary.o Buffer.o MemoryPointer.o StructByReference.o StructByValue.o StructLayout.o Thread.o DataConverter.o Types.o AbstractMemory.o Platform.o ArrayType.o ffi.o LastError.o FunctionInfo.o MappedType.o Variadic.o Function.o Call.o Type.o Pointer.o MethodHandle.o ClosurePool.o Struct.o -L. -L/usr/lib -Wl,-R/usr/lib -L. -Wl,-O1 -Wl,--as-needed -rdynamic -Wl,-export-dynamic -Wl,--no-undefined -Wl,-R -Wl,/usr/lib -L/usr/lib -lruby18 -lffi -lffi -lrt -ldl -lcrypt -lm -lc
Thread.o: In function `rbffi_thread_blocking_region':
Thread.c:(.text+0x115): undefined reference to `pthread_create'
Thread.c:(.text+0x159): undefined reference to `pthread_join'
Thread.o: In function `cleanup_blocking_thread':
Thread.c:(.text+0x2f6): undefined reference to `pthread_kill'
Thread.o: In function `rbffi_blocking_thread':
Thread.c:(.text+0x348): undefined reference to `pthread_testcancel'
collect2: ld returned 1 exit status
make: *** [ffi_c.so] Error 1
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/ffi-1.0.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/ffi-1.0.7/ext/ffi_c/gem_make.out
Building native extensions. This could take a while...
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
next reply other threads:[~2011-04-21 23:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-21 23:57 Matt Harrison [this message]
2011-04-22 0:25 ` [gentoo-user] installing ffi gem Alan McKinnon
2011-04-22 0:33 ` kashani
2011-04-22 0:39 ` Matt Harrison
2011-04-22 3:54 ` skiarxon
2011-04-22 4:54 ` [gentoo-user] " Hans de Graaff
2011-04-22 6:12 ` kashani
2011-04-22 17:36 ` Hans de Graaff
2011-04-22 4:52 ` Hans de Graaff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110421235713.GA18633@genestate.com \
--to=iwasinnamuknow@genestate.com \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox