Karsten Hopp 574115
To: vim_dev@googlegroups.com
Karsten Hopp 574115
Subject: Patch 7.4.117
Karsten Hopp 574115
Fcc: outbox
Karsten Hopp 574115
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 574115
Mime-Version: 1.0
Karsten Hopp 574115
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 574115
Content-Transfer-Encoding: 8bit
Karsten Hopp 574115
------------
Karsten Hopp 574115
Karsten Hopp 574115
Patch 7.4.117
Karsten Hopp 574115
Problem:    Can't build with Cygwin/MingW and Perl 5.18.
Karsten Hopp 574115
Solution:   Add a linker argument for the Perl library. (Cesar Romani)
Karsten Hopp 574115
	    Adjust CFLAGS and LIB. (Cesar Romani)
Karsten Hopp 574115
	    Move including inline.h further down. (Ken Takata)
Karsten Hopp 574115
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs
Karsten Hopp 574115
Karsten Hopp 574115
Karsten Hopp 574115
*** ../vim-7.4.116/src/Make_cyg.mak	2013-11-28 16:32:34.000000000 +0100
Karsten Hopp 574115
--- src/Make_cyg.mak	2013-12-11 14:59:12.000000000 +0100
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 1,6 ****
Karsten Hopp 574115
  #
Karsten Hopp 574115
  # Makefile for VIM on Win32, using Cygnus gcc
Karsten Hopp 574115
! # Last updated by Dan Sharp.  Last Change: 2013 Nov 28
Karsten Hopp 574115
  #
Karsten Hopp 574115
  # Also read INSTALLpc.txt!
Karsten Hopp 574115
  #
Karsten Hopp 574115
--- 1,6 ----
Karsten Hopp 574115
  #
Karsten Hopp 574115
  # Makefile for VIM on Win32, using Cygnus gcc
Karsten Hopp 574115
! # Last updated by Dan Sharp.  Last Change: 2013 Dec 11
Karsten Hopp 574115
  #
Karsten Hopp 574115
  # Also read INSTALLpc.txt!
Karsten Hopp 574115
  #
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 155,161 ****
Karsten Hopp 574115
  ifeq (yes, $(DYNAMIC_PERL))
Karsten Hopp 574115
  DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
Karsten Hopp 574115
  else
Karsten Hopp 574115
! EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
--- 155,161 ----
Karsten Hopp 574115
  ifeq (yes, $(DYNAMIC_PERL))
Karsten Hopp 574115
  DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
Karsten Hopp 574115
  else
Karsten Hopp 574115
! EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
*** ../vim-7.4.116/src/Make_ming.mak	2013-07-06 13:32:11.000000000 +0200
Karsten Hopp 574115
--- src/Make_ming.mak	2013-12-07 20:02:52.000000000 +0100
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 359,364 ****
Karsten Hopp 574115
--- 359,365 ----
Karsten Hopp 574115
  
Karsten Hopp 574115
  CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
Karsten Hopp 574115
  WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
Karsten Hopp 574115
+ EXTRA_LIBS =
Karsten Hopp 574115
  
Karsten Hopp 574115
  ifdef GETTEXT
Karsten Hopp 574115
  DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 377,385 ****
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
  ifdef PERL
Karsten Hopp 574115
! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
Karsten Hopp 574115
  ifeq (yes, $(DYNAMIC_PERL))
Karsten Hopp 574115
  CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
--- 378,387 ----
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
  ifdef PERL
Karsten Hopp 574115
! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
Karsten Hopp 574115
  ifeq (yes, $(DYNAMIC_PERL))
Karsten Hopp 574115
  CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
Karsten Hopp 574115
+ EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 632,638 ****
Karsten Hopp 574115
  
Karsten Hopp 574115
  ifdef PERL
Karsten Hopp 574115
  ifeq (no, $(DYNAMIC_PERL))
Karsten Hopp 574115
! LIB += -lperl$(PERL_VER)
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
--- 634,640 ----
Karsten Hopp 574115
  
Karsten Hopp 574115
  ifdef PERL
Karsten Hopp 574115
  ifeq (no, $(DYNAMIC_PERL))
Karsten Hopp 574115
! LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  endif
Karsten Hopp 574115
  
Karsten Hopp 574115
*** ../vim-7.4.116/src/if_perl.xs	2013-08-02 19:28:50.000000000 +0200
Karsten Hopp 574115
--- src/if_perl.xs	2013-12-11 15:02:58.000000000 +0100
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 14,20 ****
Karsten Hopp 574115
  #define IN_PERL_FILE	/* don't include if_perl.pro from proto.h */
Karsten Hopp 574115
  
Karsten Hopp 574115
  /*
Karsten Hopp 574115
!  * Currently 32-bit version of ActivePerl is built with VC6.
Karsten Hopp 574115
   * (http://community.activestate.com/faq/windows-compilers-perl-modules)
Karsten Hopp 574115
   * It means that time_t should be 32-bit. However the default size of
Karsten Hopp 574115
   * time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T.
Karsten Hopp 574115
--- 14,21 ----
Karsten Hopp 574115
  #define IN_PERL_FILE	/* don't include if_perl.pro from proto.h */
Karsten Hopp 574115
  
Karsten Hopp 574115
  /*
Karsten Hopp 574115
!  * Currently 32-bit version of ActivePerl is built with VC6 (or MinGW since
Karsten Hopp 574115
!  * ActivePerl 5.18).
Karsten Hopp 574115
   * (http://community.activestate.com/faq/windows-compilers-perl-modules)
Karsten Hopp 574115
   * It means that time_t should be 32-bit. However the default size of
Karsten Hopp 574115
   * time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T.
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 23,28 ****
Karsten Hopp 574115
--- 24,45 ----
Karsten Hopp 574115
  # define _USE_32BIT_TIME_T
Karsten Hopp 574115
  #endif
Karsten Hopp 574115
  
Karsten Hopp 574115
+ /* Work around for perl-5.18.
Karsten Hopp 574115
+  * Don't include "perl\lib\CORE\inline.h" for now,
Karsten Hopp 574115
+  * include it after Perl_sv_free2 is defined. */
Karsten Hopp 574115
+ #define PERL_NO_INLINE_FUNCTIONS
Karsten Hopp 574115
+ 
Karsten Hopp 574115
+ /*
Karsten Hopp 574115
+  * Prevent including winsock.h.  perl.h tries to detect whether winsock.h is
Karsten Hopp 574115
+  * already included before including winsock2.h, because winsock2.h isn't
Karsten Hopp 574115
+  * compatible with winsock.h.  However the detection doesn't work with some
Karsten Hopp 574115
+  * versions of MinGW.  If WIN32_LEAN_AND_MEAN is defined, windows.h will not
Karsten Hopp 574115
+  * include winsock.h.
Karsten Hopp 574115
+  */
Karsten Hopp 574115
+ #ifdef WIN32
Karsten Hopp 574115
+ # define WIN32_LEAN_AND_MEAN
Karsten Hopp 574115
+ #endif
Karsten Hopp 574115
+ 
Karsten Hopp 574115
  #include "vim.h"
Karsten Hopp 574115
  
Karsten Hopp 574115
  #include <EXTERN.h>
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 81,90 ****
Karsten Hopp 574115
  # define PERL5101_OR_LATER
Karsten Hopp 574115
  #endif
Karsten Hopp 574115
  
Karsten Hopp 574115
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
Karsten Hopp 574115
- # define PERL5180_OR_LATER
Karsten Hopp 574115
- #endif
Karsten Hopp 574115
- 
Karsten Hopp 574115
  #ifndef pTHX
Karsten Hopp 574115
  #    define pTHX void
Karsten Hopp 574115
  #    define pTHX_
Karsten Hopp 574115
--- 98,103 ----
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 145,155 ****
Karsten Hopp 574115
  # define perl_free dll_perl_free
Karsten Hopp 574115
  # define Perl_get_context dll_Perl_get_context
Karsten Hopp 574115
  # define Perl_croak dll_Perl_croak
Karsten Hopp 574115
- # ifndef PERL5180_OR_LATER
Karsten Hopp 574115
  # ifdef PERL5101_OR_LATER
Karsten Hopp 574115
  #  define Perl_croak_xs_usage dll_Perl_croak_xs_usage
Karsten Hopp 574115
  # endif
Karsten Hopp 574115
- # endif
Karsten Hopp 574115
  # ifndef PROTO
Karsten Hopp 574115
  #  define Perl_croak_nocontext dll_Perl_croak_nocontext
Karsten Hopp 574115
  #  define Perl_call_argv dll_Perl_call_argv
Karsten Hopp 574115
--- 158,166 ----
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 262,271 ****
Karsten Hopp 574115
  static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
Karsten Hopp 574115
  static void* (*Perl_get_context)(void);
Karsten Hopp 574115
  static void (*Perl_croak)(pTHX_ const char*, ...);
Karsten Hopp 574115
- #ifndef PERL5180_OR_LATER
Karsten Hopp 574115
  #ifdef PERL5101_OR_LATER
Karsten Hopp 574115
  static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
Karsten Hopp 574115
! #endif
Karsten Hopp 574115
  #endif
Karsten Hopp 574115
  static void (*Perl_croak_nocontext)(const char*, ...);
Karsten Hopp 574115
  static I32 (*Perl_dowantarray)(pTHX);
Karsten Hopp 574115
--- 273,285 ----
Karsten Hopp 574115
  static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
Karsten Hopp 574115
  static void* (*Perl_get_context)(void);
Karsten Hopp 574115
  static void (*Perl_croak)(pTHX_ const char*, ...);
Karsten Hopp 574115
  #ifdef PERL5101_OR_LATER
Karsten Hopp 574115
+ /* Perl-5.18 has a different Perl_croak_xs_usage signature. */
Karsten Hopp 574115
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
Karsten Hopp 574115
+ static void (*Perl_croak_xs_usage)(const CV *const, const char *const params);
Karsten Hopp 574115
+ # else
Karsten Hopp 574115
  static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
Karsten Hopp 574115
! # endif
Karsten Hopp 574115
  #endif
Karsten Hopp 574115
  static void (*Perl_croak_nocontext)(const char*, ...);
Karsten Hopp 574115
  static I32 (*Perl_dowantarray)(pTHX);
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 337,343 ****
Karsten Hopp 574115
--- 351,362 ----
Karsten Hopp 574115
  static XPV** (*Perl_TXpv_ptr)(register PerlInterpreter*);
Karsten Hopp 574115
  static STRLEN* (*Perl_Tna_ptr)(register PerlInterpreter*);
Karsten Hopp 574115
  #else
Karsten Hopp 574115
+ /* Perl-5.18 has a different Perl_sv_free2 signature. */
Karsten Hopp 574115
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
Karsten Hopp 574115
+ static void (*Perl_sv_free2)(pTHX_ SV*, const U32);
Karsten Hopp 574115
+ # else
Karsten Hopp 574115
  static void (*Perl_sv_free2)(pTHX_ SV*);
Karsten Hopp 574115
+ # endif
Karsten Hopp 574115
  static void (*Perl_sys_init)(int* argc, char*** argv);
Karsten Hopp 574115
  static void (*Perl_sys_term)(void);
Karsten Hopp 574115
  static void (*Perl_call_list)(pTHX_ I32, AV*);
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 384,394 ****
Karsten Hopp 574115
      {"perl_parse", (PERL_PROC*)&perl_parse},
Karsten Hopp 574115
      {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
Karsten Hopp 574115
      {"Perl_croak", (PERL_PROC*)&Perl_croak},
Karsten Hopp 574115
- #ifndef PERL5180_OR_LATER
Karsten Hopp 574115
  #ifdef PERL5101_OR_LATER
Karsten Hopp 574115
      {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
Karsten Hopp 574115
  #endif
Karsten Hopp 574115
- #endif
Karsten Hopp 574115
      {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
Karsten Hopp 574115
      {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray},
Karsten Hopp 574115
      {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps},
Karsten Hopp 574115
--- 403,411 ----
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 492,497 ****
Karsten Hopp 574115
--- 509,522 ----
Karsten Hopp 574115
      {"", NULL},
Karsten Hopp 574115
  };
Karsten Hopp 574115
  
Karsten Hopp 574115
+ /* Work around for perl-5.18.
Karsten Hopp 574115
+  * The definitions of S_SvREFCNT_inc and S_SvREFCNT_dec are needed, so include
Karsten Hopp 574115
+  * "perl\lib\CORE\inline.h", after Perl_sv_free2 is defined.
Karsten Hopp 574115
+  * The linker won't complain about undefined __impl_Perl_sv_free2. */
Karsten Hopp 574115
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
Karsten Hopp 574115
+ # include <inline.h>
Karsten Hopp 574115
+ #endif
Karsten Hopp 574115
+ 
Karsten Hopp 574115
  /*
Karsten Hopp 574115
   * Make all runtime-links of perl.
Karsten Hopp 574115
   *
Karsten Hopp 574115
*** ../vim-7.4.116/src/version.c	2013-12-11 14:54:58.000000000 +0100
Karsten Hopp 574115
--- src/version.c	2013-12-11 15:00:12.000000000 +0100
Karsten Hopp 574115
***************
Karsten Hopp 574115
*** 740,741 ****
Karsten Hopp 574115
--- 740,743 ----
Karsten Hopp 574115
  {   /* Add new patch number below this line */
Karsten Hopp 574115
+ /**/
Karsten Hopp 574115
+     117,
Karsten Hopp 574115
  /**/
Karsten Hopp 574115
Karsten Hopp 574115
-- 
Karsten Hopp 574115
Despite the cost of living, have you noticed how it remains so popular?
Karsten Hopp 574115
Karsten Hopp 574115
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 574115
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 574115
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 574115
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///