[#63592] [ruby-trunk - Bug #10009] IO operation is 10x slower in multi-thread environment — normalperson@...
Issue #10009 has been updated by Eric Wong.
3 messages
2014/07/08
[#63682] [ruby-trunk - Feature #10030] [PATCH] reduce rb_iseq_struct to 296 bytes — ko1@...
Issue #10030 has been updated by Koichi Sasada.
3 messages
2014/07/13
[#63703] [ruby-trunk - Feature #10030] [PATCH] reduce rb_iseq_struct to 296 bytes — ko1@...
Issue #10030 has been updated by Koichi Sasada.
3 messages
2014/07/14
[#63743] [ruby-trunk - Bug #10037] Since r46798 on Solaris, "[BUG] rb_vm_get_cref: unreachable" during make — ngotogenome@...
Issue #10037 has been updated by Naohisa Goto.
3 messages
2014/07/15
[#64136] Ruby 2.1.2 (and 2.1.1 and probably others) assumes a libffi with 3 version numbers in extconf.rb — "Jeffrey 'jf' Lim" <jfs.world@...>
As per subject.
4 messages
2014/07/31
[#64138] Re: Ruby 2.1.2 (and 2.1.1 and probably others) assumes a libffi with 3 version numbers in extconf.rb
— "Jeffrey 'jf' Lim" <jfs.world@...>
2014/07/31
On Thu, Jul 31, 2014 at 6:03 PM, Jeffrey 'jf' Lim <[email protected]>
[ruby-core:64142] Re: Ruby 2.1.2 (and 2.1.1 and probably others) assumes a libffi with 3 version numbers in extconf.rb
From:
"Jeffrey 'jf' Lim" <jfs.world@...>
Date:
2014-07-31 15:44:32 UTC
List:
ruby-core #64142
On Thu, Jul 31, 2014 at 6:09 PM, Jeffrey 'jf' Lim <[email protected]> wrote: > On Thu, Jul 31, 2014 at 6:03 PM, Jeffrey 'jf' Lim <[email protected]> > wrote: > >> As per subject. >> >> If you have the latest libffi version (3.1) installed, fiddle wont be >> configured. >> >> The offending section in extconf.rb: >> ======== >> 7 pkg_config("libffi") >> 8 if ver = pkg_config("libffi", "modversion") >> 9 ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just >> ignored. >> 10 $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d' % ver.split('.') >> }}) >> 11 end >> ======== >> >> I'm not too sure what the idiomatic approach would be; how about the >> following? >> >> =============== >> --- ext/fiddle/extconf.rb.orig 2013-05-19 10:42:16.000000000 +0800 >> +++ ext/fiddle/extconf.rb 2014-07-31 18:00:47.000000000 +0800 >> @@ -7,7 +7,8 @@ >> pkg_config("libffi") >> if ver = pkg_config("libffi", "modversion") >> ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just >> ignored. >> - $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver.split('.') >> }}) >> + ver_split = ver.split('.') >> + $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ ('%d' + >> '%03d'*(versplit.length-1)) % versplit }}) >> end >> >> unless have_header('ffi.h') >> ================= >> >> > > or indeed the "correct" way? Do we use/assume "3.1.0" for "3.1" instead, > for example? > > ok, sorry my bad. Indeed it does (ext/fiddle/closure.c to be precise!) depends on RUBY_LIBFFI_MODVERSION being generated off of a 3-digit 'ver'). So the correct patch should this instead: ========== --- ext/fiddle/extconf.rb.orig 2013-05-19 10:42:16.000000000 +0800 +++ ext/fiddle/extconf.rb 2014-07-31 23:39:34.000000000 +0800 @@ -7,7 +7,9 @@ pkg_config("libffi") if ver = pkg_config("libffi", "modversion") ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just ignored. - $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver.split('.') }}) + ver_split = ver.split('.') + ver_split.push '0' if ver_split.length == 2 + $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver_split }}) end unless have_header('ffi.h') =========== thanks, -jf