diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-03-07 15:16:21 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-03-07 15:16:21 +0100 |
commit | db3fbe5228025b7f87702e74cfbbb5acf01c7c39 (patch) | |
tree | 1dab5620094b8a49921d4b9b50f2572ab00cef9d /src | |
parent | 4e3c70d241842d3129d4c4d480c60910029d56af (diff) | |
download | vim-git-db3fbe5228025b7f87702e74cfbbb5acf01c7c39.tar.gz |
updated for version 7.3.848v7.3.848
Problem: Can't build with Ruby 2.0 when using MinGW x64 or MSVC10.
Solution: Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64.
(Ken Takata)
Diffstat (limited to 'src')
-rw-r--r-- | src/Make_cyg.mak | 8 | ||||
-rw-r--r-- | src/Make_ming.mak | 8 | ||||
-rw-r--r-- | src/if_ruby.c | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 28 insertions, 1 deletions
diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak index 2b7fce9a4..e35e2e358 100644 --- a/src/Make_cyg.mak +++ b/src/Make_cyg.mak @@ -229,18 +229,26 @@ else ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) RUBY_PLATFORM = i386-mingw32 else +ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) +RUBY_PLATFORM = x64-mingw32 +else RUBY_PLATFORM = i386-mswin32 endif endif endif +endif ifndef RUBY_INSTALL_NAME ifeq ($(RUBY_VER), 16) RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) else +ifeq ($(ARCH),x86-64) +RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) +else RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) endif endif +endif ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) RUBY_19_OR_LATER = 1 diff --git a/src/Make_ming.mak b/src/Make_ming.mak index 695b7e712..b8d7b200e 100644 --- a/src/Make_ming.mak +++ b/src/Make_ming.mak @@ -288,18 +288,26 @@ else ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) RUBY_PLATFORM = i386-mingw32 else +ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) +RUBY_PLATFORM = x64-mingw32 +else RUBY_PLATFORM = i386-mswin32 endif endif endif +endif ifndef RUBY_INSTALL_NAME ifeq ($(RUBY_VER), 16) RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) else +ifeq ($(ARCH),x86-64) +RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) +else RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) endif endif +endif ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) RUBY_19_OR_LATER = 1 diff --git a/src/if_ruby.c b/src/if_ruby.c index 818aacbfc..d810d3770 100644 --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -39,6 +39,9 @@ */ # define rb_cFalseClass (*dll_rb_cFalseClass) # define rb_cFixnum (*dll_rb_cFixnum) +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 +# define rb_cFloat (*dll_rb_cFloat) +# endif # define rb_cNilClass (*dll_rb_cNilClass) # define rb_cSymbol (*dll_rb_cSymbol) # define rb_cTrueClass (*dll_rb_cTrueClass) @@ -249,6 +252,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 +VALUE *dll_rb_cFloat; +#endif VALUE *dll_rb_cNilClass; static VALUE *dll_rb_cObject; VALUE *dll_rb_cSymbol; @@ -352,7 +358,7 @@ rb_float_new_in_heap(double d) { return dll_rb_float_new(d); } -unsigned long rb_num2ulong(VALUE x) +VALUE rb_num2ulong(VALUE x) { return (long)RSHIFT((SIGNED_VALUE)(x),1); } @@ -373,6 +379,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 + {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, +#endif {"rb_cNilClass", (RUBY_PROC*)&dll_rb_cNilClass}, {"rb_cObject", (RUBY_PROC*)&dll_rb_cObject}, {"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol}, diff --git a/src/version.c b/src/version.c index 309f656c6..c6ce9c2a9 100644 --- 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 */ /**/ + 848, +/**/ 847, /**/ 846, |