diff --git a/main/php_stdint.h b/main/php_stdint.h index 29a81f20bcb4..71f7493a6aa8 100644 --- a/main/php_stdint.h +++ b/main/php_stdint.h @@ -19,6 +19,25 @@ #ifndef PHP_STDINT_H #define PHP_STDINT_H +/* C99 requires these for C++ to get the definitions + * of INT64_MAX and other macros used by Zend/zend_long.h + * C11 drops this requirement, so these effectively + * just backport that piece of behavior. + * + * These defines are placed here instead of + * with the include below, because sys/types + * and inttypes may include stdint themselves. + * And these definitions MUST come first. + */ +#ifdef __cplusplus +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS +# endif +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS +# endif +#endif + #if defined(_MSC_VER) /* Make sure the regular stdint.h wasn't included already and prevent it to be included afterwards. Though if some other library needs some stuff from @@ -42,21 +61,6 @@ #include "php_config.h" -#if HAVE_STDINT_H && defined(__cplusplus) - /* C99 requires these for C++ to get the definitions - * of INT64_MAX and other macros used by Zend/zend_long.h - * C11 drops this requirement, so these effectively - * just backport that piece of behavior. - * - * These defines are placed here instead of - * with the include below, because sys/types - * and inttypes may include stdint themselves. - * And these definitions MUST come first. - */ -# define __STDC_LIMIT_MACROS -# define __STDC_CONSTANT_MACROS -#endif - #if HAVE_SYS_TYPES_H # include #endif