summaryrefslogtreecommitdiff
path: root/ext/fiddle/extconf.rb
diff options
context:
space:
mode:
authorVít Ondruch <v.ondruch@tiscali.cz>2019-07-10 23:19:32 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-10-24 19:34:43 +0900
commitce6caade7c57a505f73086ccd7b33c14f7715f22 (patch)
tree7e6548fb3124d4f10c9d74cc7c8133409b6a5169 /ext/fiddle/extconf.rb
parent30d46966a97968d166f2f1440f227c2b52483780 (diff)
[ruby/fiddle] Use ffi_closure_free by default. (#20)
* Use ffi_closure_free unconditionally. The current conditionals reflect historic heritage of FFI. Usage of ffi_closure_free should be better default nowadays, because libffi 3.0.5 fixing issues of ffi_closure_free should be widely available. * RUBY_LIBFFI_MODVERSION is not used anymore. Because `ffi_closure_free()` is not used unconditionally, there is no other use for RUBY_LIBFFI_MODVERSION define, so drop its usage. * Use more meaningful variable name. `ver` variable used to be used to pupulate RUBY_LIBFFI_MODVERSION define. Since the define was removed, the `libffi_dir` variable name should better describe the remaining usage of the variable. https://github.com/ruby/fiddle/commit/c49cc79eb8
Diffstat (limited to 'ext/fiddle/extconf.rb')
-rw-r--r--ext/fiddle/extconf.rb20
1 files changed, 6 insertions, 14 deletions
diff --git a/ext/fiddle/extconf.rb b/ext/fiddle/extconf.rb
index fce0cb4079..5525b2c808 100644
--- a/ext/fiddle/extconf.rb
+++ b/ext/fiddle/extconf.rb
@@ -7,8 +7,7 @@ bundle = enable_config('bundled-libffi')
if ! bundle
dir_config 'libffi'
- pkg_config("libffi") and
- ver = pkg_config("libffi", "modversion")
+ pkg_config("libffi")
if have_header(ffi_header = 'ffi.h')
true
@@ -28,20 +27,20 @@ begin
Dir.glob("#{$srcdir}/libffi-*/").each{|dir| FileUtils.rm_rf(dir)}
extlibs.run(["--cache=#{cache_dir}", ext_dir])
end
- ver = bundle != false &&
+ libffi_dir = bundle != false &&
Dir.glob("#{$srcdir}/libffi-*/")
.map {|n| File.basename(n)}
.max_by {|n| n.scan(/\d+/).map(&:to_i)}
- unless ver
+ unless libffi_dir
raise "missing libffi. Please install libffi."
end
- srcdir = "#{$srcdir}/#{ver}"
+ srcdir = "#{$srcdir}/#{libffi_dir}"
ffi_header = 'ffi.h'
libffi = Struct.new(*%I[dir srcdir builddir include lib a cflags ldflags opt arch]).new
- libffi.dir = ver
+ libffi.dir = libffi_dir
if $srcdir == "."
- libffi.builddir = "#{ver}/#{RUBY_PLATFORM}"
+ libffi.builddir = "#{libffi_dir}/#{RUBY_PLATFORM}"
libffi.srcdir = "."
else
libffi.builddir = libffi.dir
@@ -52,7 +51,6 @@ begin
libffi.a = "#{libffi.lib}/libffi_convenience.#{$LIBEXT}"
nowarn = CONFIG.merge("warnflags"=>"")
libffi.cflags = RbConfig.expand("$(CFLAGS)".dup, nowarn)
- ver = ver[/libffi-(.*)/, 1]
FileUtils.mkdir_p(libffi.dir)
libffi.opt = CONFIG['configure_args'][/'(-C)'/, 1]
@@ -112,12 +110,6 @@ begin
$INCFLAGS << " -I" << libffi.include
end
-if ver
- ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just ignored.
- ver = (ver.split('.') + [0,0])[0,3]
- $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver }})
-end
-
have_header 'sys/mman.h'
if have_header "dlfcn.h"