mirror of
https://github.com/php/php-src.git
synced 2024-11-24 18:34:21 +08:00
Fixed bug #66009 Failed compilation of PHP extension with C++ std library using VS 2012
Visual Studio 2012 includes sanity checks for C++11 features, see http://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.110).aspx To fix the 'inline' keyword redefinition for C++ in debug mode, the new macros ZEND_WIN32_KEEP_INLINE is introduced, ZEND_WIN32_FORCE_INLINE is automatically appended in release mode.
This commit is contained in:
parent
d992a972c0
commit
ae1cc83f98
@ -2,6 +2,7 @@
|
|||||||
#define TSRM_CONFIG_W32_H
|
#define TSRM_CONFIG_W32_H
|
||||||
|
|
||||||
#include <../main/config.w32.h>
|
#include <../main/config.w32.h>
|
||||||
|
#include "Zend/zend_config.w32.h"
|
||||||
|
|
||||||
#define HAVE_UTIME 1
|
#define HAVE_UTIME 1
|
||||||
#define HAVE_ALLOCA 1
|
#define HAVE_ALLOCA 1
|
||||||
@ -11,12 +12,4 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
|
|
||||||
#undef inline
|
|
||||||
#ifdef ZEND_WIN32_FORCE_INLINE
|
|
||||||
# define inline __forceinline
|
|
||||||
#else
|
|
||||||
# define inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,10 +62,15 @@ typedef unsigned int uint;
|
|||||||
/* This will cause the compilation process to be MUCH longer, but will generate
|
/* This will cause the compilation process to be MUCH longer, but will generate
|
||||||
* a much quicker PHP binary
|
* a much quicker PHP binary
|
||||||
*/
|
*/
|
||||||
#undef inline
|
|
||||||
#ifdef ZEND_WIN32_FORCE_INLINE
|
#ifdef ZEND_WIN32_FORCE_INLINE
|
||||||
|
/* _ALLOW_KEYWORD_MACROS is only relevant for C++ */
|
||||||
|
# if (_MSC_VER >= 1700) && !defined(_ALLOW_KEYWORD_MACROS)
|
||||||
|
# define _ALLOW_KEYWORD_MACROS
|
||||||
|
# endif
|
||||||
|
# undef inline
|
||||||
# define inline __forceinline
|
# define inline __forceinline
|
||||||
#else
|
#elif !defined(ZEND_WIN32_KEEP_INLINE)
|
||||||
|
# undef inline
|
||||||
# define inline
|
# define inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user