diff options
author | Hiroshi SHIBATA <[email protected]> | 2019-10-24 19:52:54 +0900 |
---|---|---|
committer | SHIBATA Hiroshi <[email protected]> | 2019-10-24 20:58:32 +0900 |
commit | efd641ffab34e433a8d8a7d78914576f2425aa90 (patch) | |
tree | 600a6ee6843a3166f12a91404ce38bbeb04f6e21 /ext/fiddle/extconf.rb | |
parent | f126d80b1e4f42e854555e728cd4478fc7ff56db (diff) |
Revert "[ruby/fiddle] Use ffi_closure_free by default. (#20)"
This reverts commit ce6caade7c57a505f73086ccd7b33c14f7715f22.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2603
Diffstat (limited to 'ext/fiddle/extconf.rb')
-rw-r--r-- | ext/fiddle/extconf.rb | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/ext/fiddle/extconf.rb b/ext/fiddle/extconf.rb index 5525b2c808..fce0cb4079 100644 --- a/ext/fiddle/extconf.rb +++ b/ext/fiddle/extconf.rb @@ -7,7 +7,8 @@ bundle = enable_config('bundled-libffi') if ! bundle dir_config 'libffi' - pkg_config("libffi") + pkg_config("libffi") and + ver = pkg_config("libffi", "modversion") if have_header(ffi_header = 'ffi.h') true @@ -27,20 +28,20 @@ begin Dir.glob("#{$srcdir}/libffi-*/").each{|dir| FileUtils.rm_rf(dir)} extlibs.run(["--cache=#{cache_dir}", ext_dir]) end - libffi_dir = bundle != false && + ver = bundle != false && Dir.glob("#{$srcdir}/libffi-*/") .map {|n| File.basename(n)} .max_by {|n| n.scan(/\d+/).map(&:to_i)} - unless libffi_dir + unless ver raise "missing libffi. Please install libffi." end - srcdir = "#{$srcdir}/#{libffi_dir}" + srcdir = "#{$srcdir}/#{ver}" ffi_header = 'ffi.h' libffi = Struct.new(*%I[dir srcdir builddir include lib a cflags ldflags opt arch]).new - libffi.dir = libffi_dir + libffi.dir = ver if $srcdir == "." - libffi.builddir = "#{libffi_dir}/#{RUBY_PLATFORM}" + libffi.builddir = "#{ver}/#{RUBY_PLATFORM}" libffi.srcdir = "." else libffi.builddir = libffi.dir @@ -51,6 +52,7 @@ 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] @@ -110,6 +112,12 @@ 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" |