Re: Patch 7.4.225

2014-03-28 Fir de Conversatie Bram Moolenaar

Ken Takata wrote:

> 2014/3/28 Fri 3:09:11 UTC+9 Bram Moolenaar wrote:
> > Patch 7.4.225
> > Problem:Dynamic Ruby doesn't work on Solaris.
> > Solution:   Always use the stubs. (Danek Duvall, Yukihiro Nakadaira)
> > Files:  src/if_ruby.c
> 
> Link error occurs after 7.4.225 on Ubuntu 12.04 x86_64 with ruby 1.8
> (+ruby/dyn).
> 
> objects/if_ruby.o: In function `window_s_aref':
> if_ruby.c:(.text+0x2cf): undefined reference to `rb_fix2int_stub'
> if_ruby.c:(.text+0x311): undefined reference to `rb_num2int_stub'
> objects/if_ruby.o: In function `buffer_s_aref':
> if_ruby.c:(.text+0x37f): undefined reference to `rb_fix2int_stub'
> if_ruby.c:(.text+0x3c9): undefined reference to `rb_num2int_stub'
> objects/if_ruby.o: In function `window_set_width':
> if_ruby.c:(.text+0x101d): undefined reference to `rb_num2int_stub'
> if_ruby.c:(.text+0x1049): undefined reference to `rb_fix2int_stub'
> objects/if_ruby.o: In function `window_set_height':
> if_ruby.c:(.text+0x108d): undefined reference to `rb_num2int_stub'
> if_ruby.c:(.text+0x10b9): undefined reference to `rb_fix2int_stub'
> 
> Attached patch seems to fix this.
> 
> Tested with:
>  * Ubuntu 12.04 x86_64, ruby 1.8.7 (+ruby/dyn)
>  * Ubuntu 12.04 x86_64, ruby 1.9.3 (+ruby/dyn)

Thanks!


-- 
It doesn't really matter what you are able to do if you don't do it.
(Bram Moolenaar)

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 7.4.225

2014-03-28 Fir de Conversatie Ken Takata
Hi,

2014/3/28 Fri 3:09:11 UTC+9 Bram Moolenaar wrote:
> Patch 7.4.225
> Problem:Dynamic Ruby doesn't work on Solaris.
> Solution:   Always use the stubs. (Danek Duvall, Yukihiro Nakadaira)
> Files:src/if_ruby.c

Link error occurs after 7.4.225 on Ubuntu 12.04 x86_64 with ruby 1.8
(+ruby/dyn).

objects/if_ruby.o: In function `window_s_aref':
if_ruby.c:(.text+0x2cf): undefined reference to `rb_fix2int_stub'
if_ruby.c:(.text+0x311): undefined reference to `rb_num2int_stub'
objects/if_ruby.o: In function `buffer_s_aref':
if_ruby.c:(.text+0x37f): undefined reference to `rb_fix2int_stub'
if_ruby.c:(.text+0x3c9): undefined reference to `rb_num2int_stub'
objects/if_ruby.o: In function `window_set_width':
if_ruby.c:(.text+0x101d): undefined reference to `rb_num2int_stub'
if_ruby.c:(.text+0x1049): undefined reference to `rb_fix2int_stub'
objects/if_ruby.o: In function `window_set_height':
if_ruby.c:(.text+0x108d): undefined reference to `rb_num2int_stub'
if_ruby.c:(.text+0x10b9): undefined reference to `rb_fix2int_stub'

Attached patch seems to fix this.

Tested with:
 * Ubuntu 12.04 x86_64, ruby 1.8.7 (+ruby/dyn)
 * Ubuntu 12.04 x86_64, ruby 1.9.3 (+ruby/dyn)

Regards,
Ken Takata

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
# HG changeset patch
# Parent a5d3f1327978ca5503c1258e4544366b788bc5f7

diff --git a/src/if_ruby.c b/src/if_ruby.c
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -88,8 +88,9 @@
 # define rb_int2big rb_int2big_stub
 #endif
 
-#if defined(DYNAMIC_RUBY_VER) && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
-/* Ruby 2.0 defines a number of static functions which use rb_fix2int and
+#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19 \
+	&& VIM_SIZEOF_INT < VIM_SIZEOF_LONG
+/* Ruby 1.9 defines a number of static functions which use rb_fix2int and
  * rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit) */
 # define rb_fix2int rb_fix2int_stub
 # define rb_num2int rb_num2int_stub
@@ -202,6 +203,10 @@
 # define rb_inspect			dll_rb_inspect
 # define rb_int2inum			dll_rb_int2inum
 # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */
+#  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 18
+#   define rb_fix2int			dll_rb_fix2int
+#   define rb_num2int			dll_rb_num2int
+#  endif
 #  define rb_num2uint			dll_rb_num2uint
 # endif
 # define rb_lastline_get			dll_rb_lastline_get
@@ -389,7 +394,8 @@
 {
 return dll_rb_int2big(x);
 }
-#  if defined(DYNAMIC_RUBY_VER) && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
+#  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19 \
+	&& VIM_SIZEOF_INT < VIM_SIZEOF_LONG
 long rb_fix2int_stub(VALUE x)
 {
 return dll_rb_fix2int(x);


Patch 7.4.225

2014-03-27 Fir de Conversatie Bram Moolenaar

Patch 7.4.225
Problem:Dynamic Ruby doesn't work on Solaris.
Solution:   Always use the stubs. (Danek Duvall, Yukihiro Nakadaira)
Files:  src/if_ruby.c


*** ../vim-7.4.224/src/if_ruby.c2014-02-23 22:52:33.352764716 +0100
--- src/if_ruby.c   2014-03-27 18:56:37.428765988 +0100
***
*** 88,95 
  # define rb_int2big rb_int2big_stub
  #endif
  
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \
!   && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  /* Ruby 2.0 defines a number of static functions which use rb_fix2int and
   * rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit) */
  # define rb_fix2int rb_fix2int_stub
--- 88,94 
  # define rb_int2big rb_int2big_stub
  #endif
  
! #if defined(DYNAMIC_RUBY_VER) && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  /* Ruby 2.0 defines a number of static functions which use rb_fix2int and
   * rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit) */
  # define rb_fix2int rb_fix2int_stub
***
*** 203,210 
  # define rb_inspect   dll_rb_inspect
  # define rb_int2inum  dll_rb_int2inum
  # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */
- #  define rb_fix2int  dll_rb_fix2int
- #  define rb_num2int  dll_rb_num2int
  #  define rb_num2uint dll_rb_num2uint
  # endif
  # define rb_lastline_get  dll_rb_lastline_get
--- 202,207 
***
*** 392,399 
  {
  return dll_rb_int2big(x);
  }
! #  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \
!   && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  long rb_fix2int_stub(VALUE x)
  {
  return dll_rb_fix2int(x);
--- 389,395 
  {
  return dll_rb_int2big(x);
  }
! #  if defined(DYNAMIC_RUBY_VER) && VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  long rb_fix2int_stub(VALUE x)
  {
  return dll_rb_fix2int(x);
*** ../vim-7.4.224/src/version.c2014-03-27 18:51:06.612760919 +0100
--- src/version.c   2014-03-27 18:55:21.412764824 +0100
***
*** 736,737 
--- 736,739 
  {   /* Add new patch number below this line */
+ /**/
+ 225,
  /**/

-- 
Engineers are widely recognized as superior marriage material: intelligent,
dependable, employed, honest, and handy around the house.
(Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.