From: Dale Weiler Date: Thu, 20 Dec 2012 08:17:04 +0000 (+0000) Subject: FTBFS fixes X-Git-Tag: 0.1.9~30 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d7585a810adc4b31331dd9d43b7da6a5995b9962;p=xonotic%2Fgmqcc.git FTBFS fixes --- diff --git a/con.c b/con.c index 53fc308..b20febd 100644 --- a/con.c +++ b/con.c @@ -46,7 +46,7 @@ typedef struct { * Doing colored output on windows is fucking stupid. The linux way is * the real way. So we emulate it on windows :) */ -#ifdef _WIN32 +#ifdef _MSC_VER #define WIN32_LEAN_AND_MEAN #include @@ -208,7 +208,7 @@ static void con_enablecolor() { */ static int con_write(FILE *handle, const char *fmt, va_list va) { int ln; - #ifndef _WIN32 + #ifndef _MSC_VER ln = vfprintf(handle, fmt, va); #else { @@ -331,7 +331,7 @@ void con_vprintmsg_c(int level, const char *name, size_t line, const char *msgty int err = !!(level == LVL_ERROR); int color = (err) ? console.color_err : console.color_out; - int (*print)(const char *, ...) = (err) ? &con_err : &con_out; + int (*print) (const char *, ...) = (err) ? &con_err : &con_out; int (*vprint)(const char *, va_list) = (err) ? &con_verr : &con_vout; if (color) diff --git a/gmqcc.h b/gmqcc.h index 53a5460..ee9853e 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -139,50 +139,53 @@ * for systems that don't have it, which we must * assume is all systems. (int8_t not required) */ -#if CHAR_MIN == -128 - typedef unsigned char uint8_t; /* same as below */ -#elif SCHAR_MIN == -128 - typedef unsigned char uint8_t; /* same as above */ -#endif -#if SHRT_MAX == 0x7FFF - typedef short int16_t; - typedef unsigned short uint16_t; -#elif INT_MAX == 0x7FFF - typedef int int16_t; - typedef unsigned int uint16_t; -#endif -#if INT_MAX == 0x7FFFFFFF - typedef int int32_t; - typedef unsigned int uint32_t; -#elif LONG_MAX == 0x7FFFFFFF - typedef long int32_t; - typedef unsigned long uint32_t; -#endif - - -#if defined(__GNUC__) || defined (__CLANG__) - typedef int int64_t __attribute__((__mode__(__DI__))); - typedef unsigned int uint64_t __attribute__((__mode__(__DI__))); -#elif defined(_MSC_VER) - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; +#if __STDC_VERSION__ < 199901L +# if CHAR_MIN == -128 + typedef unsigned char uint8_t; /* same as below */ +# elif SCHAR_MIN == -128 + typedef unsigned char uint8_t; /* same as above */ +# endif +# if SHRT_MAX == 0x7FFF + typedef short int16_t; + typedef unsigned short uint16_t; +# elif INT_MAX == 0x7FFF + typedef int int16_t; + typedef unsigned int uint16_t; +# endif +# if INT_MAX == 0x7FFFFFFF + typedef int int32_t; + typedef unsigned int uint32_t; +# elif LONG_MAX == 0x7FFFFFFF + typedef long int32_t; + typedef unsigned long uint32_t; +# endif + +# if defined(__GNUC__) || defined (__CLANG__) + typedef int int64_t __attribute__((__mode__(__DI__))); + typedef unsigned int uint64_t __attribute__((__mode__(__DI__))); +# elif defined(_MSC_VER) + typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; +# else + /* + * Incorrectly size the types so static assertions below will + * fail. There is no valid way to get a 64bit type at this point + * without making assumptions of too many things. + */ + typedef struct { char _fail : 0; } int64_t; + typedef struct { char _fail : 0; } uint64_t; +# endif + /* Ensure type sizes are correct: */ + typedef char uint8_size_is_correct [sizeof(uint8_t) == 1?1:-1]; + typedef char uint16_size_is_correct [sizeof(uint16_t) == 2?1:-1]; + typedef char uint32_size_is_correct [sizeof(uint32_t) == 4?1:-1]; + typedef char uint64_size_is_correct [sizeof(uint64_t) == 8?1:-1]; + typedef char int16_size_if_correct [sizeof(int16_t) == 2?1:-1]; + typedef char int32_size_is_correct [sizeof(int32_t) == 4?1:-1]; + typedef char int64_size_is_correct [sizeof(int64_t) >= 8?1:-1]; #else - /* - * Incorrectly size the types so static assertions below will - * fail. There is no valid way to get a 64bit type at this point - * without making assumptions of too many things. - */ - typedef struct { char _fail : 0; } int64_t; - typedef struct { char _fail : 0; } uint64_t; +# include #endif -/* Ensure type sizes are correct: */ -typedef char uint8_size_is_correct [sizeof(uint8_t) == 1?1:-1]; -typedef char uint16_size_is_correct [sizeof(uint16_t) == 2?1:-1]; -typedef char uint32_size_is_correct [sizeof(uint32_t) == 4?1:-1]; -typedef char uint64_size_is_correct [sizeof(uint64_t) == 8?1:-1]; -typedef char int16_size_if_correct [sizeof(int16_t) == 2?1:-1]; -typedef char int32_size_is_correct [sizeof(int32_t) == 4?1:-1]; -typedef char int64_size_is_correct [sizeof(int64_t) >= 8?1:-1]; /*===================================================================*/ /*=========================== util.c ================================*/