diff options
author | Joe George <joe@zeroc.com> | 2016-02-12 11:10:28 -0500 |
---|---|---|
committer | Joe George <joe@zeroc.com> | 2016-02-12 11:10:28 -0500 |
commit | 70fcaab8e9566edd7d749b1f6e3147e0efdbe94d (patch) | |
tree | 6f043cce81cf206a9ac7f1ff2fc4349a80aa23c3 /php/src/php5/Config.h | |
parent | minor fixes to stream classes; restoring test/Ice/stream (diff) | |
download | ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.tar.bz2 ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.tar.xz ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.zip |
ICE-6973 - Add support for PHP 7
Diffstat (limited to 'php/src/php5/Config.h')
-rw-r--r-- | php/src/php5/Config.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/php/src/php5/Config.h b/php/src/php5/Config.h new file mode 100644 index 00000000000..bb43591f06d --- /dev/null +++ b/php/src/php5/Config.h @@ -0,0 +1,129 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_PHP_CONFIG_H +#define ICE_PHP_CONFIG_H + +// +// We need to define WIN32_LEAN_AND_MEAN to avoid redefinition errors in +// winsock2.h. However, we can't define the macro in the Makefile because +// a PHP header defines it without a surrounding #ifndef, so we have to +// undefine it before including the PHP header files. +// +#ifdef _WIN32 +# define WIN32_LEAN_AND_MEAN +#endif + +#include <Ice/Ice.h> + +#ifdef _WIN32 +# undef WIN32_LEAN_AND_MEAN +#endif + +#ifdef _WIN32 +#include <crtdbg.h> +#include <math.h> +#endif + +#ifdef _WIN32 +extern "C" +{ +#endif + +#ifdef _WIN32 +# pragma warning( disable : 4018) // suppress signed/unsigned mismatch in zend_execute.h (PHP 5.3.x) +#elif defined(__GNUC__) +# pragma GCC diagnostic warning "-Wsign-compare" +#endif + +#ifdef _WIN64 +# pragma warning( disable : 4267) // suppress size_t/uint conversion warnings in zend macros for Windows x64 builds +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +# pragma GCC diagnostic warning "-Wnarrowing" +#endif + +#include "php.h" + +#ifdef _WIN32 +# pragma warning( default : 4018) +#endif + +#include "php_ini.h" +#include "ext/standard/info.h" +#include "zend_interfaces.h" +#include "zend_exceptions.h" + +#ifdef _WIN32 +} +#endif + +extern zend_module_entry ice_module_entry; +#define phpext_ice_ptr &ice_module_entry + +#ifdef PHP_WIN32 +#define PHP_ICE_API __declspec(dllexport) +#else +#define PHP_ICE_API +#endif + +#ifdef ZTS +#include "TSRM.h" +#endif + +// +// The PHP header files define a macro named "inline". +// +#ifdef inline +# undef inline +#endif + +ZEND_MINIT_FUNCTION(ice); +ZEND_MSHUTDOWN_FUNCTION(ice); +ZEND_RINIT_FUNCTION(ice); +ZEND_RSHUTDOWN_FUNCTION(ice); +ZEND_MINFO_FUNCTION(ice); + +ZEND_BEGIN_MODULE_GLOBALS(ice) + void* communicatorMap; + void* idToClassInfoMap; + void* compactIdToClassInfoMap; + void* nameToClassInfoMap; + void* proxyInfoMap; + void* exceptionInfoMap; + zval* unset; +ZEND_END_MODULE_GLOBALS(ice) + +#ifdef ZTS +# define ICE_G(v) TSRMG(ice_globals_id, zend_ice_globals*, v) +#else +# define ICE_G(v) (ice_globals.v) +#endif + +#ifndef Z_ADDREF_P +# ifndef ZVAL_ADDREF +# error "Unknown PHP version" +# endif +# define Z_ADDREF_P(zv) ZVAL_ADDREF(zv) +#endif + +#ifndef ZEND_MN +# define ZEND_MN(name) ZEND_FN(name) +#endif + +// +// Older versions of PHP use char* instead of const char* in many APIs. +// +#ifdef STRCAST +# error "STRCAST already defined!" +#endif +#define STRCAST(s) const_cast<char*>(s) + +#endif |