Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't Install ffi -v '1.9.18' on macos Catalina

Can't install specific ffi version. If I run gem install ffi, everything works just fine but I need specific version 1.9.18 and it doesn't work.

Fetching ffi 1.9.18 Installing ffi 1.9.18 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.  current directory: /Users/chille/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-  1.9.18/ext/ffi_c /Users/chille/.rbenv/versions/2.6.5/bin/ruby -I  /Users/chille/.rbenv/versions/2.6.5/lib/ruby/2.6.0 -r ./siteconf20200928-22154-72wopi.rb 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 shlwapi.h... no checking for rb_thread_blocking_region()... no checking for rb_thread_call_with_gvl()... yes checking for rb_thread_call_without_gvl()... yes checking for ffi_prep_cif_var()... yes creating extconf.h creating Makefile  current directory: /Users/chille/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-  1.9.18/ext/ffi_c make "DESTDIR=" clean  current directory: /Users/chille/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-  1.9.18/ext/ffi_c make "DESTDIR=" compiling AbstractMemory.c compiling ArrayType.c compiling Buffer.c compiling Call.c Call.c:355:5: error: implicit declaration of function 'rb_thread_call_without_gvl' is  invalid in C99 [-Werror,-Wimplicit-function-declaration] rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL); ^ ./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region' # define rbffi_thread_blocking_region rb_thread_call_without_gvl                                   ^ 1 error generated. make: *** [Call.o] Error 1  make failed, exit code 2  Gem files will remain installed in  

/Users/chille/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.9.18 for inspection. Results logged to /Users/chille/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64- darwin-19/2.6.0/ffi-1.9.18/gem_make.out

An error occurred while installing ffi (1.9.18), and Bundler cannot continue. Make sure that gem install ffi -v '1.9.18' succeeds before bundling.

In Gemfile: bootstrap-sass was resolved to 3.3.7, which depends on sass was resolved to 3.5.5, which depends on sass-listen was resolved to 4.0.0, which depends on rb-inotify was resolved to 0.9.10, which depends on ffi

like image 222
Denis Omerovic Avatar asked Sep 28 '20 07:09

Denis Omerovic


Video Answer


1 Answers

To get past that error, install ffi using:

gem install ffi -v '1.9.18' -- --with-cflags="-Wno-error=implicit-function-declaration"

like image 93
user2066349 Avatar answered Oct 07 '22 16:10

user2066349