Re: Help setting up appveyor for Windows continuous integration testing

2016-04-25 Thread David Mertens
Hello Rob,

Thanks for all of this work! I'll go through all of this at various points
throughout the week, so I may send a couple of follow-up emails later.

Thanks!
David

On Sun, Apr 24, 2016 at 8:05 PM,  wrote:

> From: David Mertens
> Sent: Monday, April 25, 2016 7:16 AM
> To: perl-xs@perl.org
> Subject: Help setting up appveyor for Windows continuous integration
> testing
> Hello everyone,
>
> The specific tcc error (given at
>> https://ci.appveyor.com/project/run4flat/c-blocks/build/1.0.17#L47) is:
>>
>>  C:/STRAWB~1/perl/lib/CORE/perl.h:2708: error: ';' expected (got
>> "perl_os_thread")
>>
>
> What does line 2708  of perl.h contain ?
> I get a very similar type of error when building C-Blocks-0.03 on Windows
> (perl-5.16, mingw.org build of gcc-4.7.0):
>
> Building C-Blocks
> Creating lib/C/Blocks/PerlAPI.xs
> In file included from perl_h_QSJqVkp1.c:15:
> In file included from C:/Mingw/perl516/lib/CORE/perl.h:610:
> C:/MinGW/include/sys/types.h:27: error: ';' expected (got "__time32_t")
>
> where line 27 is:
>
> typedef __int32 __time32_t;
>
> My first thought was that perl might be doing something incompatible with
> the __int32 symbol, as there's no problem with a C program that #includes
> sys/types.h.
> But #including sys/types.h into an Inline::C script is also fine, so I
> think it's unlikely that perl is the culprit
>
> Moving on  I don't get that error when I switch to perl-522, which
> uses the gcc-4.9.2 compiler provided by mingw-w64 project (different
> vendor).
> Indeed, this compiler doesn't typedef __int32 at all.
>
> However, with this combo, the C-Blocks-0.03 build fails with:
>
> Building C-Blocks
> Creating lib/C/Blocks/PerlAPI.xs
> In file included from perl_h_Xd9p6ge7.c:15:
> In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:699:
> In file included from
> C:/_32/gcc-straw-492/i686-w64-mingw32/include/sys/types.h:13:
> In file included from
> C:/_32/gcc-straw-492/i686-w64-mingw32/include/crtdefs.h:10:
> In file included from
> C:/_32/gcc-straw-492/i686-w64-mingw32/include/_mingw.h:275:
> C:/_32/gcc-straw-492/i686-w64-mingw32/include/vadefs.h:35: error: #error
> VARARGS not implemented for this compiler
> Unable to serialize the header file
>
> The error implies that the symbol  __WIDL__ has not been defined.
> It looks to me (not entirely certain) that __WIDL__ is normally *not*
> defined for me.
>
> Does anybody know what's going on?
>>
>
> Not me.
> Note that these errors are being obtained just running "cpan -i
> C::Blocks". Appveyor is not involved (unless, of course, it's being called
> in as part of the cpan build).
>
> One other odd thing:
> I had to set the CPATH environment variable to the location of winsock2.h
> - otherwise that header could not be located.
> In both C and Inline::C scripts that header is in the default search path
> - and gets #included fine.
>
> Here's the error:
>
> Building C-Blocks
> Creating lib/C/Blocks/PerlAPI.xs
> In file included from perl_h_Yryks05Z.c:15:
> In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:3060:
> In file included from C:/MinGW/perl522_64int/lib/CORE/win32thread.h:4:
> C:/MinGW/perl522_64int/lib/CORE/win32.h:131: warning: WIN32_LEAN_AND_MEAN
> redefined
> In file included from perl_h_Yryks05Z.c:15:
> In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:3060:
> In file included from C:/MinGW/perl522_64int/lib/CORE/win32thread.h:4:
> In file included from C:/MinGW/perl522_64int/lib/CORE/win32.h:419:
> C:/MinGW/perl522_64int/lib/CORE/sys/socket.h:21: error: include file
> 'winsock2.h' not found
> Unable to serialize the header file
> lib/C/Blocks/PerlAPI.xs.PL failed at
> C:/MinGW/perl522_64int/site/lib/Module/Build/Base.pm line 2930.
>
> I just noticed that setting CPATH also removes the "WIN32_LEAN_AND_MEAN"
> redefinition warning.
> Also, win32.h #includes windows.h - and I *think* (could check if it's
> important) that should be enough to get winsock2.h #included.
> Something is not quite right.
>
> Cheers,
> Rob
>



-- 
 "Debugging is twice as hard as writing the code in the first place.
  Therefore, if you write the code as cleverly as possible, you are,
  by definition, not smart enough to debug it." -- Brian Kernighan


Re: Help setting up appveyor for Windows continuous integration testing

2016-04-24 Thread sisyphus1

From: David Mertens
Sent: Monday, April 25, 2016 7:16 AM
To: perl-xs@perl.org
Subject: Help setting up appveyor for Windows continuous integration testing
Hello everyone,

The specific tcc error (given at 
https://ci.appveyor.com/project/run4flat/c-blocks/build/1.0.17#L47) is:


 C:/STRAWB~1/perl/lib/CORE/perl.h:2708: error: ';' expected (got 
"perl_os_thread")


What does line 2708  of perl.h contain ?
I get a very similar type of error when building C-Blocks-0.03 on Windows 
(perl-5.16, mingw.org build of gcc-4.7.0):


Building C-Blocks
Creating lib/C/Blocks/PerlAPI.xs
In file included from perl_h_QSJqVkp1.c:15:
In file included from C:/Mingw/perl516/lib/CORE/perl.h:610:
C:/MinGW/include/sys/types.h:27: error: ';' expected (got "__time32_t")

where line 27 is:

typedef __int32 __time32_t;

My first thought was that perl might be doing something incompatible with 
the __int32 symbol, as there's no problem with a C program that #includes 
sys/types.h.
But #including sys/types.h into an Inline::C script is also fine, so I think 
it's unlikely that perl is the culprit


Moving on  I don't get that error when I switch to perl-522, which uses 
the gcc-4.9.2 compiler provided by mingw-w64 project (different vendor).

Indeed, this compiler doesn't typedef __int32 at all.

However, with this combo, the C-Blocks-0.03 build fails with:

Building C-Blocks
Creating lib/C/Blocks/PerlAPI.xs
In file included from perl_h_Xd9p6ge7.c:15:
In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:699:
In file included from 
C:/_32/gcc-straw-492/i686-w64-mingw32/include/sys/types.h:13:
In file included from 
C:/_32/gcc-straw-492/i686-w64-mingw32/include/crtdefs.h:10:
In file included from 
C:/_32/gcc-straw-492/i686-w64-mingw32/include/_mingw.h:275:
C:/_32/gcc-straw-492/i686-w64-mingw32/include/vadefs.h:35: error: #error 
VARARGS not implemented for this compiler

Unable to serialize the header file

The error implies that the symbol  __WIDL__ has not been defined.
It looks to me (not entirely certain) that __WIDL__ is normally *not* 
defined for me.



Does anybody know what's going on?


Not me.
Note that these errors are being obtained just running "cpan -i C::Blocks". 
Appveyor is not involved (unless, of course, it's being called in as part of 
the cpan build).


One other odd thing:
I had to set the CPATH environment variable to the location of winsock2.h - 
otherwise that header could not be located.
In both C and Inline::C scripts that header is in the default search path - 
and gets #included fine.


Here's the error:

Building C-Blocks
Creating lib/C/Blocks/PerlAPI.xs
In file included from perl_h_Yryks05Z.c:15:
In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:3060:
In file included from C:/MinGW/perl522_64int/lib/CORE/win32thread.h:4:
C:/MinGW/perl522_64int/lib/CORE/win32.h:131: warning: WIN32_LEAN_AND_MEAN 
redefined

In file included from perl_h_Yryks05Z.c:15:
In file included from C:/MinGW/perl522_64int/lib/CORE/perl.h:3060:
In file included from C:/MinGW/perl522_64int/lib/CORE/win32thread.h:4:
In file included from C:/MinGW/perl522_64int/lib/CORE/win32.h:419:
C:/MinGW/perl522_64int/lib/CORE/sys/socket.h:21: error: include file 
'winsock2.h' not found

Unable to serialize the header file
lib/C/Blocks/PerlAPI.xs.PL failed at 
C:/MinGW/perl522_64int/site/lib/Module/Build/Base.pm line 2930.


I just noticed that setting CPATH also removes the "WIN32_LEAN_AND_MEAN" 
redefinition warning.
Also, win32.h #includes windows.h - and I *think* (could check if it's 
important) that should be enough to get winsock2.h #included.

Something is not quite right.

Cheers,
Rob