On Mon, May 20, 2013 at 6:49 PM, Yukihiro Nakadaira < [email protected]> wrote:
> On Mon, May 20, 2013 at 4:37 AM, Christian J. Robinson > <[email protected]>wrote: > >> On Sun, 19 May 2013, Bram Moolenaar wrote: >> >> >> Christian J. Robinson wrote: >>> >>> [..]/vim73/src/if_ruby.c:739: undefined reference to `ruby_init_stack' >>>> collect2: ld returned 1 exit status >>>> link.sh: Linking failed >>>> make: *** [vim] Error 1 >>>> >>> >>> What version of Ruby are you using? ruby_init_stack() is supposed to be >>> called only for Ruby 1.8 and later. >>> >> >> % ruby --version >> ruby 1.8.5 (2006-08-25) [x86_64-linux] > > > Indeed, ruby_init_stack() is not defined in ruby-1.8.5. It was added to > ruby-1.8.6. How about to check if RUBY_INIT_STACK is defined for > workaround. > Sorry, it need more #if. diff -r 0917206e7317 src/if_ruby.c --- a/src/if_ruby.c Sun May 19 22:31:18 2013 +0200 +++ b/src/if_ruby.c Mon May 20 19:00:40 2013 +0900 @@ -158,8 +158,10 @@ static void ruby_io_init(void); static void ruby_vim_init(void); -#if defined(__ia64) && !defined(ruby_init_stack) -# define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) +#if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# if defined(__ia64) && !defined(ruby_init_stack) +# define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) +# endif #endif #if defined(DYNAMIC_RUBY) || defined(PROTO) @@ -231,12 +233,14 @@ # define rb_float_new dll_rb_float_new # define rb_ary_new dll_rb_ary_new # define rb_ary_push dll_rb_ary_push -# ifdef __ia64 -# define rb_ia64_bsp dll_rb_ia64_bsp -# undef ruby_init_stack -# define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) -# else -# define ruby_init_stack dll_ruby_init_stack +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 +# define rb_ia64_bsp dll_rb_ia64_bsp +# undef ruby_init_stack +# define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) +# else +# define ruby_init_stack dll_ruby_init_stack +# endif # endif # else # define rb_str2cstr dll_rb_str2cstr @@ -346,11 +350,13 @@ static VALUE (*dll_rb_float_new) (double); static VALUE (*dll_rb_ary_new) (void); static VALUE (*dll_rb_ary_push) (VALUE, VALUE); -# ifdef __ia64 +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 static void * (*dll_rb_ia64_bsp) (void); static void (*dll_ruby_init_stack)(VALUE*, void*); -# else +# else static void (*dll_ruby_init_stack)(VALUE*); +# endif # endif # endif # ifdef RUBY19_OR_LATER @@ -491,10 +497,6 @@ # endif # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, -# ifdef __ia64 - {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, -# endif - {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, # if DYNAMIC_RUBY_VER <= 19 {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, # else @@ -513,6 +515,12 @@ {"rb_require", (RUBY_PROC*)&dll_rb_require}, {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, # endif +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 + {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, +# endif + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, +# endif {"", NULL}, }; @@ -735,7 +743,7 @@ NtInitialize(&argc, &argv); #endif { -#if defined(RUBY_VERSION) && RUBY_VERSION >= 18 +#if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) ruby_init_stack(ruby_stack_start); #endif ruby_init(); -- Yukihiro Nakadaira - [email protected] -- -- 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
