From 9cfa811b0f209d714f89fe0de6778c71f77556c7 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Wed, 13 May 2020 08:39:50 +0900 Subject: [PATCH] Do not try ffi_closure_alloc if libffi is <= 3.1 Maybe due to e1855100e46040e73630b378974c17764e0cccee, CentOS, RHEL, and Fedora CIs have started failing with SEGV. Try to avoid ffi_closure_alloc on those environments. https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos8/ruby-master/log/20200512T183004Z.fail.html.gz https://rubyci.org/logs/rubyci.s3.amazonaws.com/fedora32/ruby-master/log/20200512T183004Z.fail.html.gz https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20200512T183003Z.fail.html.gz --- ext/fiddle/extconf.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/fiddle/extconf.rb b/ext/fiddle/extconf.rb index 120c4ce7b4..35e5a312ab 100644 --- a/ext/fiddle/extconf.rb +++ b/ext/fiddle/extconf.rb @@ -122,6 +122,7 @@ end case when $mswin, $mingw, (ver && (ver <=> [3, 2]) >= 0) $defs << "-DUSE_FFI_CLOSURE_ALLOC=1" +when (ver && (ver <=> [3, 1]) <= 0) else have_func('ffi_closure_alloc', ffi_header) end