# HG changeset patch # User Bram Moolenaar # Date 1368360677 -7200 # Node ID e7361b2d8136f6468daedf1bec7390d77c5c5bb1 # Parent 94d3350638b4e8c076408973f4b968aedaa58810 updated for version 7.3.936 Problem: Ruby 1.8: Missing piece for static linking on 64 bit systems. Solution: Define ruby_init_stack() (Hiroshi Shirosaki) Also fix preprocessor indents. diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -158,108 +158,112 @@ static void error_print(int); 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()) +#endif + #if defined(DYNAMIC_RUBY) || defined(PROTO) -#ifdef PROTO -# define HINSTANCE int /* for generating prototypes */ -#endif +# ifdef PROTO +# define HINSTANCE int /* for generating prototypes */ +# endif /* * Wrapper defines */ -#define rb_assoc_new dll_rb_assoc_new -#define rb_cObject (*dll_rb_cObject) -#define rb_check_type dll_rb_check_type -#define rb_class_path dll_rb_class_path -#define rb_data_object_alloc dll_rb_data_object_alloc -#define rb_define_class_under dll_rb_define_class_under -#define rb_define_const dll_rb_define_const -#define rb_define_global_function dll_rb_define_global_function -#define rb_define_method dll_rb_define_method -#define rb_define_module dll_rb_define_module -#define rb_define_module_function dll_rb_define_module_function -#define rb_define_singleton_method dll_rb_define_singleton_method -#define rb_define_virtual_variable dll_rb_define_virtual_variable -#define rb_stdout (*dll_rb_stdout) -#define rb_eArgError (*dll_rb_eArgError) -#define rb_eIndexError (*dll_rb_eIndexError) -#define rb_eRuntimeError (*dll_rb_eRuntimeError) -#define rb_eStandardError (*dll_rb_eStandardError) -#define rb_eval_string_protect dll_rb_eval_string_protect -#define rb_global_variable dll_rb_global_variable -#define rb_hash_aset dll_rb_hash_aset -#define rb_hash_new dll_rb_hash_new -#define rb_inspect dll_rb_inspect -#define rb_int2inum dll_rb_int2inum -#if SIZEOF_INT < 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 -#define rb_lastline_set dll_rb_lastline_set -#define rb_load_protect dll_rb_load_protect -#ifndef RUBY19_OR_LATER -#define rb_num2long dll_rb_num2long -#endif -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 19 -#define rb_num2ulong dll_rb_num2ulong -#endif -#define rb_obj_alloc dll_rb_obj_alloc -#define rb_obj_as_string dll_rb_obj_as_string -#define rb_obj_id dll_rb_obj_id -#define rb_raise dll_rb_raise -#define rb_str_cat dll_rb_str_cat -#define rb_str_concat dll_rb_str_concat -#define rb_str_new dll_rb_str_new -#ifdef rb_str_new2 +# define rb_assoc_new dll_rb_assoc_new +# define rb_cObject (*dll_rb_cObject) +# define rb_check_type dll_rb_check_type +# define rb_class_path dll_rb_class_path +# define rb_data_object_alloc dll_rb_data_object_alloc +# define rb_define_class_under dll_rb_define_class_under +# define rb_define_const dll_rb_define_const +# define rb_define_global_function dll_rb_define_global_function +# define rb_define_method dll_rb_define_method +# define rb_define_module dll_rb_define_module +# define rb_define_module_function dll_rb_define_module_function +# define rb_define_singleton_method dll_rb_define_singleton_method +# define rb_define_virtual_variable dll_rb_define_virtual_variable +# define rb_stdout (*dll_rb_stdout) +# define rb_eArgError (*dll_rb_eArgError) +# define rb_eIndexError (*dll_rb_eIndexError) +# define rb_eRuntimeError (*dll_rb_eRuntimeError) +# define rb_eStandardError (*dll_rb_eStandardError) +# define rb_eval_string_protect dll_rb_eval_string_protect +# define rb_global_variable dll_rb_global_variable +# define rb_hash_aset dll_rb_hash_aset +# define rb_hash_new dll_rb_hash_new +# define rb_inspect dll_rb_inspect +# define rb_int2inum dll_rb_int2inum +# if SIZEOF_INT < 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 +# define rb_lastline_set dll_rb_lastline_set +# define rb_load_protect dll_rb_load_protect +# ifndef RUBY19_OR_LATER +# define rb_num2long dll_rb_num2long +# endif +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 19 +# define rb_num2ulong dll_rb_num2ulong +# endif +# define rb_obj_alloc dll_rb_obj_alloc +# define rb_obj_as_string dll_rb_obj_as_string +# define rb_obj_id dll_rb_obj_id +# define rb_raise dll_rb_raise +# define rb_str_cat dll_rb_str_cat +# define rb_str_concat dll_rb_str_concat +# define rb_str_new dll_rb_str_new +# ifdef rb_str_new2 /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ -# define need_rb_str_new_cstr 1 +# define need_rb_str_new_cstr 1 /* Ruby's headers #define rb_str_new_cstr to make use of GCC's * __builtin_constant_p extension. */ -# undef rb_str_new_cstr -# define rb_str_new_cstr dll_rb_str_new_cstr -#else -# define rb_str_new2 dll_rb_str_new2 -#endif -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 -# define rb_string_value dll_rb_string_value -# define rb_string_value_ptr dll_rb_string_value_ptr -# 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()) +# undef rb_str_new_cstr +# define rb_str_new_cstr dll_rb_str_new_cstr # else -# define ruby_init_stack dll_ruby_init_stack +# define rb_str_new2 dll_rb_str_new2 +# endif +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# define rb_string_value dll_rb_string_value +# define rb_string_value_ptr dll_rb_string_value_ptr +# 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 +# endif +# else +# define rb_str2cstr dll_rb_str2cstr # endif -#else -# define rb_str2cstr dll_rb_str2cstr -#endif -#ifdef RUBY19_OR_LATER -# define rb_errinfo dll_rb_errinfo -#else -# define ruby_errinfo (*dll_ruby_errinfo) -#endif -#define ruby_init dll_ruby_init -#define ruby_init_loadpath dll_ruby_init_loadpath -#ifdef WIN3264 -# define NtInitialize dll_NtInitialize -# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 -# define rb_w32_snprintf dll_rb_w32_snprintf +# ifdef RUBY19_OR_LATER +# define rb_errinfo dll_rb_errinfo +# else +# define ruby_errinfo (*dll_ruby_errinfo) # endif -#endif +# define ruby_init dll_ruby_init +# define ruby_init_loadpath dll_ruby_init_loadpath +# ifdef WIN3264 +# define NtInitialize dll_NtInitialize +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# define rb_w32_snprintf dll_rb_w32_snprintf +# endif +# endif -#ifdef RUBY19_OR_LATER -# define ruby_script dll_ruby_script -# define rb_enc_find_index dll_rb_enc_find_index -# define rb_enc_find dll_rb_enc_find -# define rb_enc_str_new dll_rb_enc_str_new -# define rb_sprintf dll_rb_sprintf -# define rb_require dll_rb_require -# define ruby_process_options dll_ruby_process_options -#endif +# ifdef RUBY19_OR_LATER +# define ruby_script dll_ruby_script +# define rb_enc_find_index dll_rb_enc_find_index +# define rb_enc_find dll_rb_enc_find +# define rb_enc_str_new dll_rb_enc_str_new +# define rb_sprintf dll_rb_sprintf +# define rb_require dll_rb_require +# define ruby_process_options dll_ruby_process_options +# endif /* * Pointers for dynamic link @@ -267,9 +271,9 @@ static void ruby_vim_init(void); static VALUE (*dll_rb_assoc_new) (VALUE, VALUE); VALUE *dll_rb_cFalseClass; VALUE *dll_rb_cFixnum; -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 VALUE *dll_rb_cFloat; -#endif +# endif VALUE *dll_rb_cNilClass; static VALUE *dll_rb_cObject; VALUE *dll_rb_cSymbol; @@ -296,11 +300,11 @@ static VALUE (*dll_rb_hash_aset) (VALUE, static VALUE (*dll_rb_hash_new) (void); static VALUE (*dll_rb_inspect) (VALUE); static VALUE (*dll_rb_int2inum) (long); -#if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ +# if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ static long (*dll_rb_fix2int) (VALUE); static long (*dll_rb_num2int) (VALUE); static unsigned long (*dll_rb_num2uint) (VALUE); -#endif +# endif static VALUE (*dll_rb_lastline_get) (void); static void (*dll_rb_lastline_set) (VALUE); static void (*dll_rb_load_protect) (VALUE, int, int*); @@ -310,50 +314,50 @@ static VALUE (*dll_rb_obj_alloc) (VALUE) static VALUE (*dll_rb_obj_as_string) (VALUE); static VALUE (*dll_rb_obj_id) (VALUE); static void (*dll_rb_raise) (VALUE, const char*, ...); -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 static VALUE (*dll_rb_string_value) (volatile VALUE*); -#else +# else static char *(*dll_rb_str2cstr) (VALUE,int*); -#endif +# endif static VALUE (*dll_rb_str_cat) (VALUE, const char*, long); static VALUE (*dll_rb_str_concat) (VALUE, VALUE); static VALUE (*dll_rb_str_new) (const char*, long); -#ifdef need_rb_str_new_cstr +# ifdef need_rb_str_new_cstr /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ static VALUE (*dll_rb_str_new_cstr) (const char*); -#else +# else static VALUE (*dll_rb_str_new2) (const char*); -#endif -#ifdef RUBY19_OR_LATER +# endif +# ifdef RUBY19_OR_LATER static VALUE (*dll_rb_errinfo) (void); -#else +# else static VALUE *dll_ruby_errinfo; -#endif +# endif static void (*dll_ruby_init) (void); static void (*dll_ruby_init_loadpath) (void); -#ifdef WIN3264 +# ifdef WIN3264 static void (*dll_NtInitialize) (int*, char***); -# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...); +# endif # endif -#endif -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 static char * (*dll_rb_string_value_ptr) (volatile VALUE*); static VALUE (*dll_rb_float_new) (double); static VALUE (*dll_rb_ary_new) (void); static VALUE (*dll_rb_ary_push) (VALUE, VALUE); -# ifdef __ia64 +# 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 +# ifdef RUBY19_OR_LATER static VALUE (*dll_rb_int2big)(SIGNED_VALUE); -#endif +# endif -#ifdef RUBY19_OR_LATER +# ifdef RUBY19_OR_LATER static void (*dll_ruby_script) (const char*); static int (*dll_rb_enc_find_index) (const char*); static rb_encoding* (*dll_rb_enc_find) (const char*); @@ -361,9 +365,9 @@ static VALUE (*dll_rb_enc_str_new) (cons static VALUE (*dll_rb_sprintf) (const char*, ...); static VALUE (*dll_rb_require) (const char*); static void* (*ruby_process_options)(int, char**); -#endif +# endif -#if defined(RUBY19_OR_LATER) && !defined(PROTO) +# if defined(RUBY19_OR_LATER) && !defined(PROTO) SIGNED_VALUE rb_num2long_stub(VALUE x) { return dll_rb_num2long(x); @@ -372,7 +376,7 @@ VALUE rb_int2big_stub(SIGNED_VALUE x) { return dll_rb_int2big(x); } -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ && SIZEOF_INT < SIZEOF_LONG long rb_fix2int_stub(VALUE x) { @@ -382,8 +386,8 @@ long rb_num2int_stub(VALUE x) { return dll_rb_num2int(x); } -#endif -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 +# endif +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 VALUE rb_float_new_in_heap(double d) { @@ -393,8 +397,8 @@ VALUE rb_num2ulong(VALUE x) { return (long)RSHIFT((SIGNED_VALUE)(x),1); } -#endif -#endif +# endif +# endif static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ @@ -410,9 +414,9 @@ static struct {"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new}, {"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass}, {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum}, -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, -#endif +# endif {"rb_cNilClass", (RUBY_PROC*)&dll_rb_cNilClass}, {"rb_cObject", (RUBY_PROC*)&dll_rb_cObject}, {"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol}, @@ -439,11 +443,11 @@ static struct {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, -#if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ +# if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint}, -#endif +# endif {"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get}, {"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set}, {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect}, @@ -453,53 +457,53 @@ static struct {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string}, {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id}, {"rb_raise", (RUBY_PROC*)&dll_rb_raise}, -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value}, -#else +# else {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr}, -#endif +# endif {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat}, {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat}, {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new}, -#ifdef need_rb_str_new_cstr +# ifdef need_rb_str_new_cstr {"rb_str_new_cstr", (RUBY_PROC*)&dll_rb_str_new_cstr}, -#else +# else {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2}, -#endif -#ifdef RUBY19_OR_LATER +# endif +# ifdef RUBY19_OR_LATER {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo}, -#else +# else {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo}, -#endif +# endif {"ruby_init", (RUBY_PROC*)&dll_ruby_init}, {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath}, -#ifdef WIN3264 +# ifdef WIN3264 { -# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19 "NtInitialize", -# else +# else "ruby_sysinit", -# endif +# endif (RUBY_PROC*)&dll_NtInitialize}, -# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf}, +# endif # endif -#endif -#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, -# ifdef __ia64 +# ifdef __ia64 {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, -# endif +# endif {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, -# if DYNAMIC_RUBY_VER <= 19 +# if DYNAMIC_RUBY_VER <= 19 {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, -# else +# else {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new}, -# endif +# endif {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new}, {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, -#endif -#ifdef RUBY19_OR_LATER +# endif +# ifdef RUBY19_OR_LATER {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big}, {"ruby_script", (RUBY_PROC*)&dll_ruby_script}, {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index}, @@ -508,7 +512,7 @@ static struct {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, {"rb_require", (RUBY_PROC*)&dll_rb_require}, {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, -#endif +# endif {"", NULL}, }; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 936, +/**/ 935, /**/ 934,