changeset 6872:64ff14cbb665 v7.4.756

patch 7.4.756 Problem: Can't use strawberry Perl 5.22 x64 on MS-Windows. Solution: Add new defines and #if. (Ken Takata)
author Bram Moolenaar <bram@vim.org>
date Thu, 25 Jun 2015 16:13:46 +0200
parents 644d290a906a
children 48ad20643c92
files src/Make_cyg_ming.mak src/Make_mvc.mak src/if_perl.xs src/version.c
diffstat 4 files changed, 29 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -397,7 +397,7 @@ endif
 endif
 
 ifdef PERL
-CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
+CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
 ifeq (yes, $(DYNAMIC_PERL))
 CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
 EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -874,7 +874,7 @@ PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_
 !endif
 !endif
 
-CFLAGS = $(CFLAGS) -DFEAT_PERL
+CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
 
 # Do we want to load Perl dynamically?
 !if "$(DYNAMIC_PERL)" == "yes"
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -197,10 +197,12 @@ typedef int perl_key;
 # define Perl_stack_grow dll_Perl_stack_grow
 # define Perl_set_context dll_Perl_set_context
 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-# define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
-# define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
+#  define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
+#  if (PERL_REVISION == 5) && (PERL_VERSION < 22)
+#   define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
+#  endif
 # else
-# define Perl_sv_2bool dll_Perl_sv_2bool
+#  define Perl_sv_2bool dll_Perl_sv_2bool
 # endif
 # define Perl_sv_2iv dll_Perl_sv_2iv
 # define Perl_sv_2mortal dll_Perl_sv_2mortal
@@ -268,6 +270,10 @@ typedef int perl_key;
 # define Perl_call_list dll_Perl_call_list
 # define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr
 # define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr
+# if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+#  define Perl_xs_handshake dll_Perl_xs_handshake
+#  define Perl_xs_boot_epilog dll_Perl_xs_boot_epilog
+# endif
 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
 #  ifdef USE_ITHREADS
 #   define PL_thr_key *dll_PL_thr_key
@@ -299,7 +305,11 @@ static void (*Perl_croak_nocontext)(cons
 static I32 (*Perl_dowantarray)(pTHX);
 static void (*Perl_free_tmps)(pTHX);
 static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32);
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+static I32* (*Perl_markstack_grow)(pTHX);
+#else
 static void (*Perl_markstack_grow)(pTHX);
+#endif
 static MAGIC* (*Perl_mg_find)(pTHX_ SV*, int);
 static CV* (*Perl_newXS)(pTHX_ char*, XSUBADDR_t, char*);
 static SV* (*Perl_newSV)(pTHX_ STRLEN);
@@ -321,7 +331,9 @@ static SV** (*Perl_stack_grow)(pTHX_ SV*
 static SV** (*Perl_set_context)(void*);
 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
 static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32);
+# if (PERL_REVISION == 5) && (PERL_VERSION < 22)
 static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len);
+# endif
 #else
 static bool (*Perl_sv_2bool)(pTHX_ SV*);
 #endif
@@ -394,6 +406,10 @@ static I32* (*Perl_Iscopestack_ix_ptr)(r
 static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*);
 # endif
 #endif
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+static I32 (*Perl_xs_handshake)(const U32, void *, const char *, ...);
+static void (*Perl_xs_boot_epilog)(pTHX_ const U32);
+#endif
 
 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
 # ifdef USE_ITHREADS
@@ -453,7 +469,9 @@ static struct {
     {"Perl_set_context", (PERL_PROC*)&Perl_set_context},
 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
     {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags},
+# if (PERL_REVISION == 5) && (PERL_VERSION < 22)
     {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck},
+# endif
 #else
     {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool},
 #endif
@@ -521,6 +539,10 @@ static struct {
     {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
 # endif
 #endif
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+    {"Perl_xs_handshake", (PERL_PROC*)&Perl_xs_handshake},
+    {"Perl_xs_boot_epilog", (PERL_PROC*)&Perl_xs_boot_epilog},
+#endif
 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
 #  ifdef USE_ITHREADS
     {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key},
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    756,
+/**/
     755,
 /**/
     754,