ffi gem не может создать собственное расширение на Cygwin

Мне нужно установить последнюю версию драгоценного камня ffi (в настоящее время 1.9.3) на Cygwin версии 2.844. Я видел сообщения о том, что прошлые версии, такие как 1.0.10, не собирались в системах Windows, но с тех пор было много выпусков.

Вот полное сообщение об ошибке:

DL is deprecated, please use Fiddle
Building native extensions.  This could take a while...
ERROR:  Error installing ffi:
        ERROR: Failed to build gem native extension.

    /home/chris/.rubies/ruby-2.1.1/bin/ruby.exe extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
Configuring libffi
make -C "/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin"
make[1]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-Wall -fexceptions" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/bin/sh /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/missing --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/sh" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=ar" "AS=as" "CC=gcc" "CXX=g++" "LD=/usr/bin/ld" "NM=/usr/bin/nm -B" "RANLIB=ranlib" "DESTDIR=" all-recursive
make[2]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
Making all in include
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/include'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/include'
Making all in testsuite
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/testsuite'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/testsuite'
Making all in man
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/man'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/man'
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/missing --run makeinfo   --version) >/dev/null 2>&1; then \
  for f in /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info-[0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info-[0-9][0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.i[0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
  done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/sh /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/missing --run makeinfo     -I doc -I /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc \
 -o /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi && \
  $restore $backupdir/* `echo ".//home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.texi:341: warning: missing name for @deftp
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/debug.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/debug.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/debug.c  -DDLL_EXPORT -DPIC -o src/.libs/debug.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/prep_cif.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c  -DDLL_EXPORT -DPIC -o src/.libs/prep_cif.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/types.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/types.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/types.c  -DDLL_EXPORT -DPIC -o src/.libs/types.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/raw_api.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/raw_api.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/raw_api.c  -DDLL_EXPORT -DPIC -o src/.libs/raw_api.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/java_raw_api.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/java_raw_api.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/java_raw_api.c  -DDLL_EXPORT -DPIC -o src/.libs/java_raw_api.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/closures.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/closures.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/closures.c  -DDLL_EXPORT -DPIC -o src/.libs/closures.o
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -g  -Wall -fexceptions -c -o src/x86/ffi.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/ffi.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/ffi.c  -DDLL_EXPORT -DPIC -o src/x86/.libs/ffi.o
/bin/sh ./libtool   --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src  -c -o src/x86/win64.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/win64.S
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/win64.S  -DDLL_EXPORT -DPIC -o src/x86/.libs/win64.o
/bin/sh ./libtool --tag=CC   --mode=link gcc -g  -Wall -fexceptions -version-info `grep -v '^#' /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/libtool-version`    -o libffi.la -rpath /usr/local/lib src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo     src/x86/ffi.lo src/x86/win64.lo
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
libtool: link: ar cru .libs/libffi.a  src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win64.o
libtool: link: ranlib .libs/libffi.a
libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
/bin/sh ./libtool --tag=CC   --mode=link gcc -g  -Wall -fexceptions   -o libffi_convenience.la  src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo     src/x86/ffi.lo src/x86/win64.lo
libtool: link: rm -fr  .libs/libffi_convenience.a(D)
libtool: link: ar cru .libs/libffi_convenience.a src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win64.o
libtool: link: ranlib .libs/libffi_convenience.a
libtool: link: ( cd ".libs" && rm -f "libffi_convenience.la" && ln -s "../libffi_convenience.la" "libffi_convenience.la" )
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
make[2]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
make[1]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
compiling ClosurePool.c
compiling DataConverter.c
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c: In function ‘callback_invoke’:
Function.c:479:9: warning: passing argument 1 of ‘rb_thread_call_with_gvl’ from incompatible pointer type [enabled by default]
         rb_thread_call_with_gvl(callback_with_gvl, &cb);
         ^
Function.c:102:14: note: expected ‘void * (*)(void *)’ but argument is of type ‘VALUE (*)(void *)’
 extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
              ^
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.so
Call.o: In function `call_blocking_function':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:294: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:294:(.text+0xa4): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
Call.o: In function `rbffi_CallFunction':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:378: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:378:(.text+0xa89): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
Variadic.o: In function `variadic_invoke':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Variadic.c:252: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Variadic.c:252:(.text+0x36d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/.libs/libffi_convenience.a(prep_cif.o): In function `ffi_prep_cif':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:162: undefined reference to `ffi_prep_cif_machdep'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:162:(.text+0x272): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_prep_cif_machdep'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/.libs/libffi_convenience.a(prep_cif.o): In function `ffi_prep_closure':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:174: undefined reference to `ffi_prep_closure_loc'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:174:(.text+0x2b7): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_prep_closure_loc'
collect2: error: ld returned 1 exit status
Makefile:232: recipe for target 'ffi_c.so' failed
make: *** [ffi_c.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3 for inspection.
Results logged to /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/extensions/x86_64-cygwin/2.1.0/ffi-1.9.3/gem_make.out

Кто-нибудь знает возможное решение этого? Я использую Ruby 2.1.1 в Windows 8.1.


person beakr    schedule 06.05.2014    source источник


Ответы (1)


Я установил libffi-devel и ruby-pkg-config с помощью программы установки cygwin, после чего у меня все заработало.

См. обсуждение по адресу https://github.com/ffi/ffi/issues/317 .

libffi6 зависит от libffi-devel, поэтому вам не нужно выбирать его явно. cygwin32-libffi не нужно.

person clacke    schedule 31.10.2014