Bram Moolenaar wrote:
Patch 7.0.051 (after 7.0.44)
Problem:    The Perl interface doesn't compile or doesn't work properly.
Solution:   Remove the spaces before #ifdef and avoid an empty line above it.
Files:      src/if_perl.xs

[snip]

It's ok with ActiveState Perl 5.8.7, but goes wrong with 5.8.8,
after I modify if_perl.xs it's ok too.

Index: if_perl.xs
===================================================================
--- if_perl.xs  (revision 63)
+++ if_perl.xs  (working copy)
@@ -155,8 +155,8 @@
 static int (*perl_run)(PerlInterpreter*);
 static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
 static void* (*Perl_get_context)(void);
-static void (*Perl_croak)(pTHX_ const char*, ...) __attribute__((noreturn));
-static void (*Perl_croak_nocontext)(const char*, ...) 
__attribute__((noreturn));
+static void (*Perl_croak)(pTHX_ const char*, ...);
+static void (*Perl_croak_nocontext)(const char*, ...);
 static I32 (*Perl_dowantarray)(pTHX);
 static void (*Perl_free_tmps)(pTHX);
 static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32);

I don't know why the old version containing these two lines can
be compiled successfully, I have checked perl588delta, it says there
is no incompatibility between 5.8.7 and 5.8.8.

=============
WinXP Home, ActiveState Perl 5.8.8, Python 2.4.3,
VC 6.0(cl.exe 12.00.8804 for 80x8)
=============
set path=c:\perl\bin;c:\python24;%path%
cd vim7\src
@echo make...
nmake -f Make_mvc.mak all GUI=yes OLE=yes MBYTE=yes IME=yes GDYNAMIC_IME=yes GIME=yes PERL=c:\Perl DYNAMIC_PERL=yes PERL_VER=58 PYTHON=c:\Python24 DYNAMIC_PYTHON=yes PYTHON_VER=24 CSCOPE=yes CPUNU=i586 DEBUG=yes MAP=lines
@echo done
pause
================
....
cl -c /W3 /nologo -DWIN32 -D_WIN32 -D_MT -MT -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 /Fo.\ObjGOLYd/ -D_DEBUG -DDEBUG /Od -DFEAT_OLE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DGLOBAL_IME -DFEAT_MBYTE -DFEAT_GUI_W32 -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python24.dll\" -DFEAT_PERL -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl58.dll\" -DFEAT_BIG /Zi /Fd.\ObjGOLYd/ /I c:\Perl\Lib\Core if_perl.c
if_perl.c
if_perl.xs(158) : error C2061: syntax error : identifier '__attribute__'
if_perl.xs(158) : error C2059: syntax error : ';'
if_perl.xs(158) : error C2182: 'noreturn' : illegal use of type 'void'
if_perl.xs(159) : error C2061: syntax error : identifier '__attribute__'
if_perl.xs(159) : error C2059: syntax error : ';'
if_perl.xs(159) : error C2182: 'noreturn' : illegal use of type 'void'
if_perl.xs(239) : error C2065: 'dll_Perl_croak' : undeclared identifier
if_perl.xs(240) : error C2065: 'dll_Perl_croak_nocontext' : undeclared 
identifier
if_perl.c(799) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(839) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(859) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(878) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(1012) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(1020) : error C2063: 'dll_Perl_croak_nocontext' : not a function
if_perl.c(1023) : error C2063: 'dll_Perl_croak_nocontext' : not a function
if_perl.c(1038) : error C2063: 'dll_Perl_croak' : not a function
if_perl.c(1047) : error C2063: 'dll_Perl_croak_nocontext' : not a function
if_perl.c(1050) : error C2063: 'dll_Perl_croak_nocontext' : not a function
...


Best regards,
Liu Yubao

Reply via email to