From: Steve Hay Date: Mon, 20 Mar 2006 17:21:15 +0000 (+0000) Subject: Merge some changes from ActivePerl 5.8.8.816 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=465b7da9858f72896e8487a1bf0595ae400e05fe;p=p5sagit%2Fp5-mst-13.2.git Merge some changes from ActivePerl 5.8.8.816 See: http://downloads.activestate.com/ActivePerl/src/5.8/AP816_diff.txt These changes provide better support for building XS extension modules using VC++ or MinGW when perl itself was built with the opposite of those two compilers. p4raw-id: //depot/perl@27555 --- diff --git a/win32/config_H.gc b/win32/config_H.gc index 4f9837d..c28f1a4 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -1093,9 +1093,15 @@ * This symbol is intended to be used along with CPPRUN in the same manner * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "". */ -#define CPPSTDIN "gcc -E" -#define CPPMINUS "-" -#define CPPRUN "gcc -E" +#ifndef _MSC_VER +# define CPPSTDIN "gcc -E" +# define CPPMINUS "-" +# define CPPRUN "gcc -E" +#else +# define CPPSTDIN "cppstdin" +# define CPPMINUS "" +# define CPPRUN "cl -nologo -E" +#endif #define CPPLAST "" /* HAS__FWALK: @@ -1128,7 +1134,9 @@ * This symbol is defined if the C compiler can cast negative * or large floating point numbers to 32-bit ints. */ -#define CASTI32 /**/ +#ifndef _MSC_VER +# define CASTI32 /**/ +#endif /* CASTNEGFLOAT: * This symbol is defined if the C compiler can cast negative @@ -1900,7 +1908,11 @@ */ #define HAS_LONG_DOUBLE /**/ #ifdef HAS_LONG_DOUBLE -#define LONG_DOUBLESIZE 12 /**/ +# ifndef _MSC_VER +# define LONG_DOUBLESIZE 12 /**/ +# else +# define LONG_DOUBLESIZE 10 /**/ +# endif #endif /* HAS_LONG_LONG: @@ -3055,7 +3067,11 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#define Off_t long long /* type */ +#ifndef _MSC_VER +# define Off_t long long /* type */ +#else +# define Off_t __int64 /* type */ +#endif #define LSEEKSIZE 8 /* size */ #define Off_t_size 8 /* size */ @@ -3163,8 +3179,13 @@ */ /*#define HAS_QUAD /**/ #ifdef HAS_QUAD -# define Quad_t long long /**/ -# define Uquad_t unsigned long long /**/ +# ifndef _MSC_VER +# define Quad_t long long /**/ +# define Uquad_t unsigned long long /**/ +# else +# define Quad_t __int64 /**/ +# define Uquad_t unsigned __int64 /**/ +# endif # define QUADKIND 5 /**/ # define QUAD_IS_INT 1 # define QUAD_IS_LONG 2 @@ -3259,8 +3280,13 @@ #define I32TYPE long /**/ #define U32TYPE unsigned long /**/ #ifdef HAS_QUAD -#define I64TYPE long long /**/ -#define U64TYPE unsigned long long /**/ +# ifndef _MSC_VER +# define I64TYPE long long /**/ +# define U64TYPE unsigned long long /**/ +# else +# define I64TYPE __int64 /**/ +# define U64TYPE unsigned __int64 /**/ +# endif #endif #define NVTYPE double /**/ #define IVSIZE 4 /**/ diff --git a/win32/config_H.vc b/win32/config_H.vc index 12e523d..f394791 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -1093,9 +1093,16 @@ * This symbol is intended to be used along with CPPRUN in the same manner * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "". */ -#define CPPSTDIN "cppstdin" -#define CPPMINUS "" -#define CPPRUN "cl -nologo -E" + +#ifndef __GNUC__ +# define CPPSTDIN "cppstdin" +# define CPPMINUS "" +# define CPPRUN "cl -nologo -E" +#else +# define CPPSTDIN "gcc -E" +# define CPPMINUS "-" +# define CPPRUN "gcc -E" +#endif #define CPPLAST "" /* HAS__FWALK: @@ -1128,7 +1135,9 @@ * This symbol is defined if the C compiler can cast negative * or large floating point numbers to 32-bit ints. */ -/*#define CASTI32 /**/ +#ifdef __GNUC__ +# define CASTI32 /**/ +#endif /* CASTNEGFLOAT: * This symbol is defined if the C compiler can cast negative @@ -1900,7 +1909,11 @@ */ #define HAS_LONG_DOUBLE /**/ #ifdef HAS_LONG_DOUBLE -#define LONG_DOUBLESIZE 10 /**/ +# ifndef __GNUC__ +# define LONG_DOUBLESIZE 10 /**/ +# else +# define LONG_DOUBLESIZE 12 /**/ +# endif #endif /* HAS_LONG_LONG: @@ -3055,7 +3068,11 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#define Off_t __int64 /* type */ +#ifndef __GNUC__ +# define Off_t __int64 /* type */ +#else +# define Off_t long long /* type */ +#endif #define LSEEKSIZE 8 /* size */ #define Off_t_size 8 /* size */ @@ -3163,8 +3180,13 @@ */ /*#define HAS_QUAD /**/ #ifdef HAS_QUAD -# define Quad_t __int64 /**/ -# define Uquad_t unsigned __int64 /**/ +# ifndef __GNUC__ +# define Quad_t __int64 /**/ +# define Uquad_t unsigned __int64 /**/ +# else +# define Quad_t long long /**/ +# define Uquad_t unsigned long long /**/ +# endif # define QUADKIND 5 /**/ # define QUAD_IS_INT 1 # define QUAD_IS_LONG 2 @@ -3259,8 +3281,13 @@ #define I32TYPE long /**/ #define U32TYPE unsigned long /**/ #ifdef HAS_QUAD -#define I64TYPE __int64 /**/ -#define U64TYPE unsigned __int64 /**/ +# ifndef __GNUC__ +# define I64TYPE __int64 /**/ +# define U64TYPE unsigned __int64 /**/ +# else +# define I64TYPE long long /**/ +# define U64TYPE unsigned long long /**/ +# endif #endif #define NVTYPE double /**/ #define IVSIZE 4 /**/