ActivePerl 5.18.1 fails to compile

411 views
Skip to first unread message

tux.

unread,
Nov 25, 2013, 8:33:55 PM11/25/13
to vim...@googlegroups.com
Hmm,

updated ActivePerl from 5.16.3 to 5.18.1 (yes, also in my compile.bat
file); still, compiling if_perl.c fails with "more than 100 errors"
(mostly missing brackets). Anyone who can confirm this?

Konovalov, Vadim

unread,
Nov 27, 2013, 12:46:46 AM11/27/13
to vim...@googlegroups.com
> From: vim_dev@googlegroups On Behalf Of tux.
> updated ActivePerl from 5.16.3 to 5.18.1 (yes, also in my compile.bat file);
> still, compiling if_perl.c fails with "more than 100 errors"
> (mostly missing brackets). Anyone who can confirm this?

I confirm, and I was not ready at the time to investigate.
I can investigate later today, if you wish.

On linux build process was smooth (or rather *almost* smooth, I made tiny change into if_perl.xs file)

Regards,
Vadim.

tux.

unread,
Nov 27, 2013, 9:30:47 AM11/27/13
to Konovalov, Vadim
Konovalov, Vadim schrob am Mittwoch, 27. November 2013 um 06:46 Zeit:

> I can investigate later today, if you wish.

I'd like you to. :)

Konovalov, Vadim

unread,
Nov 28, 2013, 1:18:55 AM11/28/13
to vim...@googlegroups.com
> From: vim...@googlegroups.com On Behalf Of tux.
> Konovalov, Vadim schrob am Mittwoch, 27. November 2013 um 06:46 Zeit:
> > I can investigate later today, if you wish.
> I'd like you to. :)

ActivePerl 5.18.1 binaries are built with VC6 compiler, with in turn have some applied service-packs.
(I have VC6 without the mentioned SPs)

The "config.h" file that comes with this said Activeperl has "long long" in it, and this isn't supported by the VC6 that I have, hence there are number of compiler errors.

When I've adjusted "long long" with __int64, the build process went on, but then some internal error happened.
Maybe I will find a workaround for the VC6, or will use newer VC - I haven't decided yet.

"Correct" solution is to use supported compiler that understand "long long", such as mingw.

What compiler you're using BTW?

tux.

unread,
Nov 28, 2013, 2:02:03 PM11/28/13
to Konovalov, Vadim
Konovalov, Vadim schrob am Donnerstag, 28. November 2013 um 07:18 Zeit:

> "Correct" solution is to use supported compiler that understand
> "long long", such as mingw.

> What compiler you're using BTW?

MSVC 2010, has never been a problem for all previous ActivePerl
versions...

Any "better" solution?



--
Ridi Pagliaccio, sul tuo amore infranto! Ridi del duol che t'avvelena
il cor!

Cesar Romani

unread,
Nov 28, 2013, 5:10:01 PM11/28/13
to vim...@vim.org
It doesn't work either. I'm using MinGW with gcc 4.6.2 on Windows 7.
I get the following error:

--------------------
[...]
gobjZi386/if_perl.o:if_perl.c:(.text+0x37e1): undefined reference to
`_imp__Perl_sv_free2'
gobjZi386/if_perl.o:if_perl.c:(.text+0x3fc5): undefined reference to
`_imp__Perl_sv_free2)
'
collect2: ld returned 1 exit status
make: *** [gvim.exe] Error 1
Error by compiling gvim.exe
--------------------

The same error happens with MinGW-W64, gcc 4.8.1 on Windows 7.


Many thanks in advance,

--
Cesar

Cesar Romani

unread,
Nov 29, 2013, 12:00:17 AM11/29/13
to vim...@vim.org
I found a solution:
libperl518.a needs to be added on the link line.

--
Cesar

tux.

unread,
Nov 29, 2013, 11:05:24 AM11/29/13
to Cesar Romani
Cesar Romani schrob am Freitag, 29. November 2013 um 06:00 Zeit:

> libperl518.a needs to be added on the link line.

Does that also solve the MSVC issue?

Ken Takata

unread,
Nov 29, 2013, 2:36:46 PM11/29/13
to vim...@googlegroups.com, vadim.k...@emc.com
Hi,

2013/11/28 Thu 15:18:55 UTC+9 Konovalov, Vadim wrote:
> ActivePerl 5.18.1 binaries are built with VC6 compiler, with in turn have some applied service-packs.
> (I have VC6 without the mentioned SPs)

ActivePerl 5.16 is built with VC6. However, it seems that ActivePerl 5.18.1
is built with MinGW.

Regards,
Ken Takata

tux.

unread,
Nov 29, 2013, 2:55:39 PM11/29/13
to Ken Takata
Well, so is there a recent Perl distribution for use with MSVC? :(

Ken Takata

unread,
Nov 29, 2013, 5:15:55 PM11/29/13
to vim...@googlegroups.com
Hi,

A fix for ActivePerl 5.18.1 is already posted at here:
http://code.google.com/p/vim/issues/detail?id=170#c5
(Hmm, preprocessor directives are not nicely indented. It's better to
fix them.)

However, using this fix is not enough when build with MSVC.
As I already mentioned, ActivePerl 5.18.1 is build with MinGW.
It means that C:\Perl\lib\CORE\config.h is configured for MinGW.
So I had to change the configuration for MSVC.

--- C:\Perl\lib\CORE\config.h.org Sat Nov 30 04:07:14 2013
+++ C:\Perl\lib\CORE\config.h Sat Nov 30 04:31:24 2013
@@ -2441,7 +2441,7 @@
* static (c89 compilers)
*/
#define HAS_STATIC_INLINE /**/
-#define PERL_STATIC_INLINE static __inline__ /**/
+#define PERL_STATIC_INLINE static __inline /**/

/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)


After applying this patch, I could build with MSVC10.
I confirmed that `:perl VIM::Msg("hello")` works, but I don't know
it fully works because there are no tests for if_perl :-(

Regards,
Ken Takata

tux.

unread,
Nov 29, 2013, 5:30:03 PM11/29/13
to Ken Takata
Wow. Looks like it's working. :-)

Thank you!

Steve Hall

unread,
Nov 30, 2013, 8:09:18 AM11/30/13
to vim...@googlegroups.com
Hi Ken, thanks for continuing to help with build issues...

On Fri, Nov 29, 2013 at 5:15 PM, Ken Takata <ken...@csc.jp> wrote:
>
> A fix for ActivePerl 5.18.1 is already posted at here:
> http://code.google.com/p/vim/issues/detail?id=170#c5 (Hmm,
> preprocessor directives are not nicely indented. It's better to fix
> them.)
>
> However, using this fix is not enough when build with MSVC. As I
> already mentioned, ActivePerl 5.18.1 is build with MinGW. It means
> that C:\Perl\lib\CORE\config.h is configured for MinGW. So I had to
> change the configuration for MSVC.
>
> --- C:\Perl\lib\CORE\config.h.org Sat Nov 30 04:07:14 2013
> +++ C:\Perl\lib\CORE\config.h Sat Nov 30 04:31:24 2013
> @@ -2441,7 +2441,7 @@
> * static (c89 compilers)
> */
> #define HAS_STATIC_INLINE /**/
> -#define PERL_STATIC_INLINE static __inline__ /**/
> +#define PERL_STATIC_INLINE static __inline /**/
>
> /* USE_STDIO_PTR:
> * This symbol is defined if the _ptr and _cnt fields (or similar)

My version of Strawberry Perl (5.18.1.1-64) had this fix already.


> After applying this patch, I could build with MSVC10. I confirmed
> that `:perl VIM::Msg("hello")` works, but I don't know it fully
> works because there are no tests for if_perl :-(

With the revised if_perl.xs from your previous link, I still get the
following build errors in a Cygwin build.

1:In file included from
/cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
2: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
3: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
4: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
5: from if_perl.xs:36:
6:/usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:38:2:
error: #error "ws2tcpip.h is not compatible with winsock.h. Include
win
7:In file included from
/cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
8: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
9: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
10: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
11: from if_perl.xs:36:
12:/usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:147:8:
error: redefinition of ‘struct ip_mreq’
13:In file included from
/usr/i686-pc-mingw32/sys-root/mingw/include/windows.h:93:0,
14: from os_win32.h:104,
15: from vim.h:330,
16: from if_perl.xs:31:
17:/usr/i686-pc-mingw32/sys-root/mingw/include/winsock.h:315:8: note:
originally defined here
18:In file included from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:515:0,
19: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
20: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
21: from if_perl.xs:36:
22:/cygdrive/c/strawberry/perl/lib/CORE/win32iop.h:235:0: warning:
"fstat" redefined [enabled by default]
23:In file included from vim.h:477:0,
24: from if_perl.xs:31:
25:/usr/i686-pc-mingw32/sys-root/mingw/include/sys/stat.h:301:0:
note: this is the location of the previous definition
26:In file included from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:515:0,
27: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
28: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
29: from if_perl.xs:36:
30:/cygdrive/c/strawberry/perl/lib/CORE/win32iop.h:236:0: warning:
"stat" redefined [enabled by default]
31:In file included from vim.h:477:0,
32: from if_perl.xs:31:
33:/usr/i686-pc-mingw32/sys-root/mingw/include/sys/stat.h:300:0:
note: this is the location of the previous definition
34:In file included from /cygdrive/c/strawberry/perl/lib/CORE/hv.h:592:0,
35: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:3480,
36: from if_perl.xs:36:
37:/cygdrive/c/strawberry/perl/lib/CORE/hv_func.h: In function
‘S_perl_hash_murmur3’:
38:/cygdrive/c/strawberry/perl/lib/CORE/hv_func.h:391:17: warning:
cast from pointer to integer of different size [-Wpointer-to-int-cas
39:if_perl.xs: In function ‘newWINrv’:
40:if_perl.xs:704:2: warning: cast from pointer to integer of
different size [-Wpointer-to-int-cast]
41:if_perl.xs: In function ‘newBUFrv’:
42:if_perl.xs:722:2: warning: cast from pointer to integer of
different size [-Wpointer-to-int-cast]
43:if_perl.c: In function ‘S_croak_xs_usage’:
44:if_perl.c:1162:56: warning: cast from pointer to integer of
different size [-Wpointer-to-int-cast]
45:if_perl.c: In function ‘XS_VIWIN_DESTROY’:
46:if_perl.c:1421:12: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
47:if_perl.c: In function ‘XS_VIWIN_Buffer’:
48:if_perl.c:1449:12: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
49:if_perl.c: In function ‘XS_VIWIN_SetHeight’:
50:if_perl.c:1487:12: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
51:if_perl.c: In function ‘XS_VIWIN_Cursor’:
52:if_perl.c:1521:12: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
53:if_perl.c: In function ‘XS_VIBUF_DESTROY’:
54:if_perl.c:1568:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
55:if_perl.c: In function ‘XS_VIBUF_Name’:
56:if_perl.c:1597:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
57:if_perl.c: In function ‘XS_VIBUF_Number’:
58:if_perl.c:1632:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
59:if_perl.c: In function ‘XS_VIBUF_Count’:
60:if_perl.c:1663:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
61:if_perl.c: In function ‘XS_VIBUF_Get’:
62:if_perl.c:1699:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
63:if_perl.c: In function ‘XS_VIBUF_Set’:
64:if_perl.c:1744:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
65:if_perl.c: In function ‘XS_VIBUF_Delete’:
66:if_perl.c:1803:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
67:if_perl.c: In function ‘XS_VIBUF_Append’:
68:if_perl.c:1882:15: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
69:Make_cyg.mak:635: recipe for target 'gobj/if_perl.o' failed


--
Steve Hall [ digitect dancingpaper com ]

Cesar Romani

unread,
Dec 1, 2013, 12:56:41 AM12/1/13
to vim...@vim.org
On 30/11/2013 08:09 a.m., Steve Hall wrote:
> [...]
> With the revised if_perl.xs from your previous link, I still get the
> following build errors in a Cygwin build.
>
> 1:In file included from
> /cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
> 2: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
> 3: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
> 4: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
> 5: from if_perl.xs:36:
> 6:/usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:38:2:
> error: #error "ws2tcpip.h is not compatible with winsock.h. Include
> win
> 7:In file included from
> /cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
> 8: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
> 9: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
> 10: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
> 11: from if_perl.xs:36:
> 12:/usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:147:8:
> error: redefinition of �struct ip_mreq�
> �S_perl_hash_murmur3�:
> 38:/cygdrive/c/strawberry/perl/lib/CORE/hv_func.h:391:17: warning:
> cast from pointer to integer of different size [-Wpointer-to-int-cas
> 39:if_perl.xs: In function �newWINrv�:
> 40:if_perl.xs:704:2: warning: cast from pointer to integer of
> different size [-Wpointer-to-int-cast]
> 41:if_perl.xs: In function �newBUFrv�:
> 42:if_perl.xs:722:2: warning: cast from pointer to integer of
> different size [-Wpointer-to-int-cast]
> 43:if_perl.c: In function �S_croak_xs_usage�:
> 44:if_perl.c:1162:56: warning: cast from pointer to integer of
> different size [-Wpointer-to-int-cast]
> 45:if_perl.c: In function �XS_VIWIN_DESTROY�:
> 46:if_perl.c:1421:12: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 47:if_perl.c: In function �XS_VIWIN_Buffer�:
> 48:if_perl.c:1449:12: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 49:if_perl.c: In function �XS_VIWIN_SetHeight�:
> 50:if_perl.c:1487:12: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 51:if_perl.c: In function �XS_VIWIN_Cursor�:
> 52:if_perl.c:1521:12: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 53:if_perl.c: In function �XS_VIBUF_DESTROY�:
> 54:if_perl.c:1568:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 55:if_perl.c: In function �XS_VIBUF_Name�:
> 56:if_perl.c:1597:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 57:if_perl.c: In function �XS_VIBUF_Number�:
> 58:if_perl.c:1632:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 59:if_perl.c: In function �XS_VIBUF_Count�:
> 60:if_perl.c:1663:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 61:if_perl.c: In function �XS_VIBUF_Get�:
> 62:if_perl.c:1699:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 63:if_perl.c: In function �XS_VIBUF_Set�:
> 64:if_perl.c:1744:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 65:if_perl.c: In function �XS_VIBUF_Delete�:
> 66:if_perl.c:1803:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 67:if_perl.c: In function �XS_VIBUF_Append�:
> 68:if_perl.c:1882:15: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 69:Make_cyg.mak:635: recipe for target 'gobj/if_perl.o' failed

With ActivePerl-5.18.1.1800, it compiles fine under cygwin if you add
libperl518.a to the link line, as in:
$(EXE): $(OUTDIR) $(OBJ)
$(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
libperl518.a


--
Cesar

Ken Takata

unread,
Dec 1, 2013, 2:37:02 AM12/1/13
to vim...@googlegroups.com
Hi Steve,

2013/11/30 Sat 22:09:18 UTC+9 Steve Hall wrote:
> With the revised if_perl.xs from your previous link, I still get the
> following build errors in a Cygwin build.
>
> 1:In file included from
> /cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
> 2: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
> 3: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
> 4: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
> 5: from if_perl.xs:36:
> 6:/usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:38:2:
> error: #error "ws2tcpip.h is not compatible with winsock.h. Include
> win
> 7:In file included from
> /cygdrive/c/strawberry/perl/lib/CORE/sys/socket.h:30:0,
> 8: from /cygdrive/c/strawberry/perl/lib/CORE/win32.h:381,
> 9: from /cygdrive/c/strawberry/perl/lib/CORE/win32thread.h:4,
> 10: from /cygdrive/c/strawberry/perl/lib/CORE/perl.h:2869,
> 11: from if_perl.xs:36:


I think this is a problem of Perl and I don't know this can be fixed by Vim.
The following patch might fix the problem:

--- C:\Perl\lib\CORE\sys\socket.h.org Wed Mar 27 12:44:16 2013
+++ C:\Perl\lib\CORE\sys\socket.h Sun Dec 01 16:06:52 2013
@@ -13,7 +13,7 @@
#include <windows.h>

/* Too late to include winsock2.h if winsock.h has already been loaded */
-#ifndef _WINSOCKAPI_
+#if !defined(_WINSOCKAPI_) && !defined(_WINSOCK_H)
# ifndef FD_SETSIZE
# define FD_SETSIZE 2048
# endif


Regards,
Ken Takata

Steve Hall

unread,
Dec 1, 2013, 9:11:44 AM12/1/13
to vim...@googlegroups.com
FINALLY! Thanks Ken and Cesar for the help.

Okay, it took three parts to get my Cygwin cross-compile for Windows
build to work with Perl:

1. Patching vim\Make_cyg.mak (via Cesar Romani)

--- C:\vim\Make_cyg.mak
+++ C:\vim\Make_cyg.mak
@@ -155,6 +155,7 @@
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
else
-EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
endif
endif

2. Replacing src\if_perl.xs with the fix from here (by
Gauchy...@gmail.com)

http://code.google.com/p/vim/issues/detail?id=170#c5


3. Patching a Strawberry Perl distribution file (by Ken Takata)

--- C:\Perl\lib\CORE\sys\socket.h.org Wed Mar 27 12:44:16 2013
+++ C:\Perl\lib\CORE\sys\socket.h Sun Dec 01 16:06:52 2013
@@ -13,7 +13,7 @@
#include <windows.h>

/* Too late to include winsock2.h if winsock.h has already been loaded */
-#ifndef _WINSOCKAPI_
+#if !defined(_WINSOCKAPI_) && !defined(_WINSOCK_H)
# ifndef FD_SETSIZE
# define FD_SETSIZE 2048
# endif

Only after all three changes were implemented would it build. Plenty
of warnings, but I was able to cross-compile both a gvim.exe and
vim.exe with +perl/dyn.

--
Steve Hall [ digitect dancingpaper com ]
:: Cream for Vim http://cream.sourceforge.net
> --
> --
> 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 vim_dev+u...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

Cesar Romani

unread,
Dec 1, 2013, 4:46:09 PM12/1/13
to vim...@vim.org
> +#if !defined(_WINSOCKAPI_)&& !defined(_WINSOCK_H)
> # ifndef FD_SETSIZE
> # define FD_SETSIZE 2048
> # endif
>
> Only after all three changes were implemented would it build. Plenty
> of warnings, but I was able to cross-compile both a gvim.exe and
> vim.exe with +perl/dyn.
>

Actually you don't need to modify any file, except Make_cyg.mak.
I managed to build vim under cygwin with strawberry perl 5.18.1.1, using
only the makefile patch:

--- C:\vim\Make_cyg.mak
+++ C:\vim\Make_cyg.mak
@@ -155,6 +155,7 @@
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
else
-EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
endif
endif


--
Cesar

Ken Takata

unread,
Dec 2, 2013, 7:15:48 AM12/2/13
to vim...@googlegroups.com, vim...@vim.org
Hi,

2013/12/2 Mon 6:46:09 UTC+9 Cesar wrote:

> Actually you don't need to modify any file, except Make_cyg.mak.
> I managed to build vim under cygwin with strawberry perl 5.18.1.1, using
> only the makefile patch:
>
> --- C:\vim\Make_cyg.mak
> +++ C:\vim\Make_cyg.mak
> @@ -155,6 +155,7 @@
> ifeq (yes, $(DYNAMIC_PERL))
> DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
> +EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
> else
> -EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
> +EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
> endif
> endif

It's only true if you use MinGW-w64 compiler (i686-w64-mingw32-gcc) and
Perl 5.18.1. Your patch cause a link error when using ActivePerl 5.16.
Maybe it's better to use the options -L and -l instead of specifying the
actual library file like perlXXX.lib or libperlXXX.a.
Gauchyler's if_perl.xs is needed when using MSVC, and also my patch for
C:\Perl\lib\CORE\config.h is needed.
My patch for C:\Perl\lib\CORE\sys\socket.h is needed when using non-w64 MinGW
(i686-pc-mingw32-gcc).

I wrote another patch based on Gauchyler's patch. I think the patch 7.3.1198
is not needed after applying his patch. I also fixed the following problem
in his patch:

> * However, even if the definition of Perl_croak_xs_usage is brought back in
> * if_perl.xs, the compiler complains about too few arguments for calling
> * croak_xs_usage and dll_Perl_croak_xs_usage. DO NOT know why.

This is because Perl-5.18 has a different Perl_croak_xs_usage signature.
Please check the attached patch: support-perl5.18.patch

1. If you use MinGW-w64 (i686-w64-mingw32-gcc or maybe x86_64-w64-mingw32-gcc):
* Apply support-perl5.18.patch. That's enough.
2. If you use MinGW (i686-pc-mingw32-gcc):
* Apply support-perl5.18.patch.
* Apply my previous patch for C:\Perl\lib\CORE\sys\socket.h.
3. If you use MSVC:
* Apply support-perl5.18.patch.
* Apply my previous patch for C:\Perl\lib\CORE\config.h.

Additionally, I wrote a patch to fix indents: fix-indent-in-if_perl.patch

Regards,
Ken Takata
support-perl5.18.patch
fix-indent-in-if_perl.patch

Bram Moolenaar

unread,
Dec 4, 2013, 8:09:45 AM12/4/13
to Cesar Romani, vim...@vim.org
Is this specific for this version of Perl? If so, what kind of
condition (flag) should we use for this?

--
Anyone who is capable of getting themselves made President should on no
account be allowed to do the job.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Cesar Romani

unread,
Dec 4, 2013, 6:03:14 PM12/4/13
to vim...@vim.org
Cygwin
------
Both Strawberry 5.18 and ActivePerl 5.18 only need the following patch:

--------------------
--- Make_cyg.mak.org 2013-11-21 22:55:56.014250100 -0500
+++ Make_cyg.mak 2013-12-04 17:57:07.550500300 -0500
@@ -139,6 +139,7 @@
##############################
# DYNAMIC_PERL=yes and no both work
##############################
+PERL=/cygdrive/c/perl
ifdef PERL
DEFINES += -DFEAT_PERL
INCLUDES += -I$(PERL)/lib/CORE
@@ -149,11 +150,12 @@
endif

ifndef PERL_VER
-PERL_VER = 56
+PERL_VER = 518
endif

ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
else
EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
endif
--------------------


MinGW and MinGW-w64(32bit)
--------------------------
Both ActivePerl 5.16 and ActivePerl 5.18 and also StrawberryPerl only
need the following patch:

--------------------
--- Make_ming.mak.org 2013-11-22 00:16:21 -0500
+++ Make_ming.mak 2013-12-04 16:20:13 -0500
@@ -101,10 +101,10 @@
#INTLLIB=intl

# uncomment 'PERL' if you want a perl-enabled version
-#PERL=C:/perl
+PERL=C:/perl
ifdef PERL
ifndef PERL_VER
-PERL_VER=56
+PERL_VER=518
endif
ifndef DYNAMIC_PERL
DYNAMIC_PERL=yes
@@ -688,8 +688,7 @@
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)

$(TARGET): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB)
-
+ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB) -L$(PERLLIBS) -lperl$(PERL_VER)
upx: exes
upx gvim.exe
upx vim.exe
--------------------

Actually ActivePerl 5.16 doesn't need this patch, but applying it
doesn't change anything.

Ken Tanaka said that one needs his C:\Perl\lib\CORE\sys\socket.h patch
for non-W64 MinGW, but I didn't need it.


Regards,

--
Cesar

Steve Hall

unread,
Dec 4, 2013, 7:35:21 PM12/4/13
to vim...@googlegroups.com
On Wed, Dec 4, 2013 at 6:03 PM, Cesar Romani <cesar....@gmail.com> wrote:
> On 04/12/2013 08:09 a.m., Bram Moolenaar wrote:
> >
> > Is this specific for this version of Perl? If so, what kind of
> > condition (flag) should we use for this?
>
> Cygwin
> ------
> Both Strawberry 5.18 and ActivePerl 5.18 only need the following patch:

[...]

This fails for me after several long strings of warnings.

I'll re-iterate that all three adjustments from my previous mail are
required for me. But my build goals are strenuous:

* cross-compile a Windows non-dependent binary via Cygwin
* Windows x64 system (currently Win8.1), AMD A8 chip
* default dependency installs (no library customizations)
* perl version is "strawberry-perl-5.18.1.1-64bit"
* HUGE feature set plus:

+lua/dyn
-mzscheme
+perl/dyn
+python/dyn
+python3/dyn
+ruby/dyn
-tcl

Perhaps there are some differences here from Cesar's setup that would
shed light?


> +PERL=/cygdrive/c/perl

Please do not hardcode paths in make files without ifndef !

Cesar Romani

unread,
Dec 4, 2013, 8:50:55 PM12/4/13
to vim...@vim.org
The only command I've used with the above patched makefile, was:
make -f Make_cyg.mak

but I used StrawberryPerl-5.18.1.1-32bit and ActivePerl-5.18.1.1-32bit,
built on Windows 7 Home Premium 64-bit using cygwin 1.7.20 with gcc
4.5.3.

>> +PERL=/cygdrive/c/perl
>
> Please do not hardcode paths in make files without ifndef !

This was intended only as an example, you can ignore it.


--
Cesar

Ken Takata

unread,
Dec 5, 2013, 9:21:03 AM12/5/13
to vim...@googlegroups.com, vim...@vim.org
Hi,

2013/12/5 Thu 10:50:55 UTC+9 Cesar wrote:
> The only command I've used with the above patched makefile, was:
> make -f Make_cyg.mak
>
> but I used StrawberryPerl-5.18.1.1-32bit and ActivePerl-5.18.1.1-32bit,
> built on Windows 7 Home Premium 64-bit using cygwin 1.7.20 with gcc
> 4.5.3.

Maybe the Win32 API headers are different.
The latest MinGW versions installed with Cygwin are:
i686-pc-mingw32-gcc (Non-w64 MinGW): 4.7.3
i686-w64-mingw32-gcc (MinGW-w64): 4.8.2

Actually, the compilation error related to winsock.h is caused by the
difference of the include guard of each winsock.h:
/usr/i686-pc-mingw32/sys-root/mingw/include/winsock.h: _WINSOCK_H
/usr/i686-w64-mingw32/sys-root/mingw/include/winsock.h: _WINSOCKAPI_
ActivePerl's socket.h supports only _WINSOCKAPI_.

The compilation error also occurs with ActivePerl 5.16. (not only 5.18)
Now I found a fix for this problem without patching socket.h.
See fix-if_perl-mingw-winsock.patch.

As I already mentioned, Cesar's patches don't care about MSVC at all.
I don't think it's the right solution.
My conclusion is applying the following patches:

1. Apply fix-if_perl-mingw-winsock.patch.
2. Apply support-perl5.18-2.patch based on Gauchyler's patch.
(Updated to fix conflict with fix-if_perl-mingw-winsock.patch.)
3. Apply fix-indent-in-if_perl.patch from
https://groups.google.com/d/msg/vim_dev/YWnfI9wFFoA/UGznr8xgysEJ (optional).
4. Apply a patch for C:\Perl\lib\CORE\config.h from
https://groups.google.com/d/msg/vim_dev/YWnfI9wFFoA/rZdp5k1hdeAJ ,
if you use MSVC and ActivePerl 5.18 (and you don't want to build Perl
form the source code).

This should work for all combinations of MSVC or MinGW (w64 or non-w64),
Perl 5.16 or 5.18, 32 or 64 bits, dynamic or static link.

Regards,
Ken Takata
fix-if_perl-mingw-winsock.patch
support-perl5.18-2.patch

Cesar Romani

unread,
Dec 5, 2013, 9:52:36 AM12/5/13
to vim...@vim.org
On 05/12/2013 09:21 a.m., Ken Takata wrote:
> Hi,
>
> 2013/12/5 Thu 10:50:55 UTC+9 Cesar wrote:
>> The only command I've used with the above patched makefile, was:
>> make -f Make_cyg.mak
>>
>> but I used StrawberryPerl-5.18.1.1-32bit and ActivePerl-5.18.1.1-32bit,
>> built on Windows 7 Home Premium 64-bit using cygwin 1.7.20 with gcc
>> 4.5.3.
>
> Maybe the Win32 API headers are different.
> The latest MinGW versions installed with Cygwin are:
> i686-pc-mingw32-gcc (Non-w64 MinGW): 4.7.3
> i686-w64-mingw32-gcc (MinGW-w64): 4.8.2

I don't use MinGW, which is installed with Cygwin. I use the standalone
MinGW from http://www.mingw.org and MinGW-w64 from
http://mingw-w64.sourceforge.net/


Regards,

--
Cesar

Ken Takata

unread,
Dec 6, 2013, 7:41:56 AM12/6/13
to vim...@googlegroups.com, vim...@vim.org
Hi Cesar,

2013/12/5 Thu 23:52:36 UTC+9 Cesar wrote:
> I don't use MinGW, which is installed with Cygwin. I use the standalone
> MinGW from http://www.mingw.org and MinGW-w64 from
> http://mingw-w64.sourceforge.net/

Do you mean that you use Make_cyg.mak with the standalone MinGW?
Make_cyg.mak is a makefile for MinGW which is installed with Cygwin.
If you use the standalne MinGW, you should use Make_ming.mak.
(I don't know if you want to execute the standalone MinGW from Cygwin.)

BTW, Make_cyg.mak and Make_ming.mak do almost same thing, so I want to
merge them into one. Merging them might reduce the maintenance cost.
This is a trial patch (Maybe more refinement is needed):
https://bitbucket.org/k_takata/vim-ktakata-mq/src/tip/merge-Make_cyg-into-Make_ming.patch

Regards,
Ken Takata

Cesar Romani

unread,
Dec 6, 2013, 10:19:07 AM12/6/13
to vim...@vim.org
On 06/12/2013 07:41 a.m., Ken Takata wrote:
> Hi Cesar,
>
> 2013/12/5 Thu 23:52:36 UTC+9 Cesar wrote:
>> I don't use MinGW, which is installed with Cygwin. I use the standalone
>> MinGW from http://www.mingw.org and MinGW-w64 from
>> http://mingw-w64.sourceforge.net/
>
> Do you mean that you use Make_cyg.mak with the standalone MinGW?
> Make_cyg.mak is a makefile for MinGW which is installed with Cygwin.
> If you use the standalne MinGW, you should use Make_ming.mak.
> (I don't know if you want to execute the standalone MinGW from Cygwin.)

For compiling with MinGW I use:
make -f Make_ming.mak

For compiling with Cygwin I use:
make -f Make_cyg.mak


Regards,

--
Cesar

Cesar Romani

unread,
Dec 6, 2013, 10:41:47 AM12/6/13
to vim...@vim.org
On 06/12/2013 07:41 a.m., Ken Takata wrote:
For compiling, normally I only use MinGW (standalone MinGW), not Cygwin,
with the patched Make_ming.mak:

--------------------
--- Make_ming.mak.org 2013-11-22 00:16:21 -0500
+++ Make_ming.mak 2013-12-04 17:13:05 -0500
@@ -688,8 +688,7 @@
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)

$(TARGET): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB)
-
+ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB) -L$(PERLLIBS) -lperl$(PERL_VER)
upx: exes
upx gvim.exe
upx vim.exe
--------------------


I noticed, in your patch on bitbucket.org, that you used -mno-cygwin,
which is already deprecated.

Moreover, I don't think it's a good idea to merge Make_ming.mak and
Make_cyg.mak, since they use different path conventions:
On Make_ming.mak you would write, for example:
PERL=/c/Perl
on Make_cyg.make you write:
PERL=/cygdrive/c/Perl


Regards,

--
Cesar

Bram Moolenaar

unread,
Dec 6, 2013, 3:03:30 PM12/6/13
to Cesar Romani, vim...@vim.org
The above can be done on the command line, since it will change with
every Perl version.

> ifeq (yes, $(DYNAMIC_PERL))
> DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
> +EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
> else
> EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
> endif

Although this addition looks OK, does it work for older Perl versions?
If not, what condition should be put around the new line?

> @@ -688,8 +688,7 @@
> $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
>
> $(TARGET): $(OUTDIR) $(OBJ)
> - $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
> $(RUBYLIB)
> -
> + $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
> $(RUBYLIB) -L$(PERLLIBS) -lperl$(PERL_VER)
> upx: exes
> upx gvim.exe
> upx vim.exe

This isn't right, it will fail when compiling without Perl.
Look around line 635.

> Actually ActivePerl 5.16 doesn't need this patch, but applying it
> doesn't change anything.
>
> Ken Tanaka said that one needs his C:\Perl\lib\CORE\sys\socket.h patch
> for non-W64 MinGW, but I didn't need it.


--
How To Keep A Healthy Level Of Insanity:
7. Finish all your sentences with "in accordance with the prophecy".

Ken Takata

unread,
Dec 6, 2013, 6:33:39 PM12/6/13
to vim...@googlegroups.com, Cesar Romani, vim...@vim.org
Hi Bram,

2013/12/7 Sat 5:03:30 UTC+9 Bram Moolenaar wrote:
> > ifeq (yes, $(DYNAMIC_PERL))
> > DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
> > +EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
> > else
> > EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
> > endif
>
> Although this addition looks OK, does it work for older Perl versions?
> If not, what condition should be put around the new line?

I think this line also works for older versions.
But it has a possibility that (g)vim.exe is linked against perl$(PERL_VER).dll
statically even if DYNAMIC_PERL is 'yes'. It can be confusing.

Regards,
Ken Takata

Cesar Romani

unread,
Dec 6, 2013, 9:53:41 PM12/6/13
to vim...@vim.org
On 06/12/2013 03:03 p.m., Bram Moolenaar wrote:
>
> Cesar Romani wrote:
> [...]
>
>> ifeq (yes, $(DYNAMIC_PERL))
>> DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
>> +EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
>> else
>> EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
>> endif
>
> Although this addition looks OK, does it work for older Perl versions?
> If not, what condition should be put around the new line?
>

I used it with Perl 5.16 and there wasn't any problem.

>> @@ -688,8 +688,7 @@
>> $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
>>
>> $(TARGET): $(OUTDIR) $(OBJ)
>> - $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
>> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
>> $(RUBYLIB)
>> -
>> + $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
>> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
>> $(RUBYLIB) -L$(PERLLIBS) -lperl$(PERL_VER)
>> upx: exes
>> upx gvim.exe
>> upx vim.exe
>
> This isn't right, it will fail when compiling without Perl.
> Look around line 635.
>

How about with this one:

--------------------
--- Make_ming.mak.org 2013-11-22 00:16:21 -0500
+++ Make_ming.mak 2013-12-06 21:21:05 -0500
@@ -380,6 +380,7 @@
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif

@@ -688,8 +689,7 @@
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)

$(TARGET): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB)
-
+ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB) $(EXTRA_LIBS)
upx: exes
upx gvim.exe
upx vim.exe
--------------------


Regards,

--
Cesar

Bram Moolenaar

unread,
Dec 7, 2013, 8:29:01 AM12/7/13
to Cesar Romani, vim...@vim.org
Hmm, adding -L$(PERLLIBS) to CFLAGS seems fishy. Perhaps it should be
like this:

ifdef PERL
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
else
EXTRA_LIBS += -L$(PERLLIBS)
endif
endif

However, if the -L argument comes too late this might not work.
Or perhaps the -L argument isn't needed?

> @@ -688,8 +689,7 @@
> $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
>
> $(TARGET): $(OUTDIR) $(OBJ)
> - $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
> $(RUBYLIB)
> -
> + $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
> $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
> $(RUBYLIB) $(EXTRA_LIBS)
> upx: exes
> upx gvim.exe
> upx vim.exe
> --------------------

--
How To Keep A Healthy Level Of Insanity:
10. Ask people what sex they are. Laugh hysterically after they answer.

Cesar Romani

unread,
Dec 7, 2013, 11:07:34 AM12/7/13
to vim...@vim.org
It also works fine.


Regards,

--
Cesar

Cesar Romani

unread,
Dec 7, 2013, 12:42:36 PM12/7/13
to vim...@vim.org
On 07/12/2013 11:07 a.m., Cesar Romani wrote:
> On 07/12/2013 08:29 a.m., Bram Moolenaar wrote:
> >
> > Cesar Romani wrote:
> > [...]
You are right, the -L argument isn't needed. It could be like this:

--------------------
ifdef PERL
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
else
endif
endif
--------------------

It also works with ActivePerl 5.16.


Regards,

--
Cesar

Bram Moolenaar

unread,
Dec 7, 2013, 2:15:15 PM12/7/13
to Cesar Romani, vim...@vim.org
Hmm, but then where is the lib itself added? Ah, it's further down. So
let's add the -L argument there:

ifdef PERL
ifeq (no, $(DYNAMIC_PERL))
LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif

It usually doesn't hurt to add a -L argument.

--
How To Keep A Healthy Level Of Insanity:
17. When the money comes out the ATM, scream "I won!, I won! 3rd
time this week!!!!!"

Dmytro Zagashev

unread,
Jan 19, 2014, 11:35:57 AM1/19/14
to vim...@googlegroups.com
Hi,

windows 8.1 x64
vim 7.4.155
strawberry perl 5.18.2.1 x64
MinGW-builds toolchain, x64-4.8.1-release-posix-seh-rev5

Compiling vim with following cmd:

mingw32-make.exe -f Make_ming.mak ARCH=x86-64 FEATURES=HUGE OLE=yes PERL="d:/devel/perl" PERL_VER=518 DYNAMIC_PERL=yes gvim.exe xxd/xxd.exe vimrun.exe

Vim compiled successfully, but when i trying to use perl inside vim - got error:

E370: Could not load library perl518.dll
Sorry, this command is disabled: the Perl library could not be loaded.

Perl bin directory is in the %path%, also, with ActivePerl 5.18.1 x64 everything works fine.

Please, help to resolve this problem.

Reply all
Reply to author
Forward
0 new messages