diff --git a/.gitignore b/.gitignore index 28e97d7..725e39b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,10 @@ bin obj .vs /packages/* +/thirdparty/php7/src/php-7.2.6 +!/thirdparty/php7/src/php-7.2.6/main/config.w32.h +!/thirdparty/php7/src/php-7.2.6/main/php.h +!/thirdparty/php7/src/php-7.2.6/win32/readdir.h /build /src/IMake/Debug /src/IMake/ipch diff --git a/envsetupsdk.cmd b/envsetupsdk.cmd index bc44abc..ddad348 100644 --- a/envsetupsdk.cmd +++ b/envsetupsdk.cmd @@ -13,6 +13,8 @@ IF NOT EXIST %MG_SDK_DIR% ( exit /b 1 ) +SET PHP_SRC=%CD%/thirdparty/php7/src/php-7.2.6 + SET MG_OEM_ACE_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/ACE_wrappers SET MG_OEM_XERCES_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/xerces SET MG_HTTPHANDLER_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/Web/HttpHandler @@ -24,6 +26,9 @@ SET MG_GEOMETRY_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/Common/Geometry SET MG_PLATFORMBASE_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/Common/PlatformBase SET MG_MAPGUIDECOMMON_INCLUDE_DIR=../../../%MG_SDK_DIR%/Inc/Common/MapGuideCommon +SET PHP_LIB=%CD%/thirdparty/php7/dev +SET PHP_LIB64=%CD%/thirdparty/php7/dev64 + SET MG_SDK_INC=../../../%MG_SDK_DIR%/Inc SET MG_SDK_LIB=../../../%MG_SDK_DIR%/Lib SET MG_SDK_LIB64=../../../%MG_SDK_DIR%/Lib64 diff --git a/src/Bindings/Php/PhpApi.vcxproj b/src/Bindings/Php/PhpApi.vcxproj index d032448..8662f61 100644 --- a/src/Bindings/Php/PhpApi.vcxproj +++ b/src/Bindings/Php/PhpApi.vcxproj @@ -103,8 +103,8 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no Disabled - ..\HttpHandler;..\WebApp;..\WebSupport;..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\dbxml\xerces-c-src\src;$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + $(MG_SDK_INC);$(MG_HTTPHANDLER_INCLUDE_DIR);$(MG_WEBAPP_INCLUDE_DIR);$(MG_WEBSUPPORT_INCLUDE_DIR);$(MG_MDFMODEL_INCLUDE_DIR);$(MG_FOUNDATION_INCLUDE_DIR);$(MG_GEOMETRY_INCLUDE_DIR);$(MG_PLATFORMBASE_INCLUDE_DIR);$(MG_MAPGUIDECOMMON_INCLUDE_DIR);$(MG_OEM_ACE_INCLUDE_DIR);$(MG_OEM_XERCES_INCLUDE_DIR);$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;_ALLOW_KEYWORD_MACROS;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) Async EnableFastChecks MultiThreadedDebugDLL @@ -113,9 +113,9 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no true - ACEd.lib;xerces-c_3mgD.lib;php5ts.lib;%(AdditionalDependencies) + ACEd.lib;xerces-c_3mgD.lib;php7ts.lib;%(AdditionalDependencies) $(OutDir)php_MapGuideApid.dll - ..\..\..\Oem\ACE\ACE_wrappers\lib\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration);$(PHP_LIB);%(AdditionalLibraryDirectories) + $(MG_SDK_LIB);..\..\..\Oem\ACE\ACE_wrappers\lib\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration);$(PHP_LIB);%(AdditionalLibraryDirectories) true $(OutDir)php_MapGuideApid.pdb Windows @@ -138,8 +138,8 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no Disabled - ..\HttpHandler;..\WebApp;..\WebSupport;..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\dbxml\xerces-c-src\src;$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;%(PreprocessorDefinitions) + $(MG_SDK_INC);$(MG_HTTPHANDLER_INCLUDE_DIR);$(MG_WEBAPP_INCLUDE_DIR);$(MG_WEBSUPPORT_INCLUDE_DIR);$(MG_MDFMODEL_INCLUDE_DIR);$(MG_FOUNDATION_INCLUDE_DIR);$(MG_GEOMETRY_INCLUDE_DIR);$(MG_PLATFORMBASE_INCLUDE_DIR);$(MG_MAPGUIDECOMMON_INCLUDE_DIR);$(MG_OEM_ACE_INCLUDE_DIR);$(MG_OEM_XERCES_INCLUDE_DIR);$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;_ALLOW_KEYWORD_MACROS;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;%(PreprocessorDefinitions) Async EnableFastChecks MultiThreadedDebugDLL @@ -148,9 +148,9 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no true - ACEd.lib;xerces-c_3mgD.lib;php5ts.lib;%(AdditionalDependencies) + ACEd.lib;xerces-c_3mgD.lib;php7ts.lib;%(AdditionalDependencies) $(OutDir)php_MapGuideApid.dll - ..\..\..\Oem\ACE\ACE_wrappers\lib64\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration)64;$(PHP_LIB);%(AdditionalLibraryDirectories) + $(MG_SDK_LIB64);..\..\..\Oem\ACE\ACE_wrappers\lib64\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration)64;$(PHP_LIB);%(AdditionalLibraryDirectories) true $(OutDir)php_MapGuideApid.pdb Windows @@ -173,8 +173,8 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no MaxSpeed - ..\HttpHandler;..\WebApp;..\WebSupport;..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\dbxml\xerces-c-src\src;$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + $(MG_SDK_INC);$(MG_HTTPHANDLER_INCLUDE_DIR);$(MG_WEBAPP_INCLUDE_DIR);$(MG_WEBSUPPORT_INCLUDE_DIR);$(MG_MDFMODEL_INCLUDE_DIR);$(MG_FOUNDATION_INCLUDE_DIR);$(MG_GEOMETRY_INCLUDE_DIR);$(MG_PLATFORMBASE_INCLUDE_DIR);$(MG_MAPGUIDECOMMON_INCLUDE_DIR);$(MG_OEM_ACE_INCLUDE_DIR);$(MG_OEM_XERCES_INCLUDE_DIR);$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;_ALLOW_KEYWORD_MACROS;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) Async MultiThreadedDLL Level3 @@ -182,9 +182,9 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no true - ACE.lib;xerces-c_3mg.lib;php5ts.lib;%(AdditionalDependencies) + ACE.lib;xerces-c_3mg.lib;php7ts.lib;%(AdditionalDependencies) $(OutDir)php_MapGuideApi.dll - ..\..\..\Oem\ACE\ACE_wrappers\lib\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration);$(PHP_LIB);%(AdditionalLibraryDirectories) + $(MG_SDK_LIB);..\..\..\Oem\ACE\ACE_wrappers\lib\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration);$(PHP_LIB);%(AdditionalLibraryDirectories) true $(OutDir)php_MapGuideApi.pdb Windows @@ -209,8 +209,8 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no MaxSpeed - ..\HttpHandler;..\WebApp;..\WebSupport;..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\dbxml\xerces-c-src\src;$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_WIN64;%(PreprocessorDefinitions) + $(MG_SDK_INC);$(MG_HTTPHANDLER_INCLUDE_DIR);$(MG_WEBAPP_INCLUDE_DIR);$(MG_WEBSUPPORT_INCLUDE_DIR);$(MG_MDFMODEL_INCLUDE_DIR);$(MG_FOUNDATION_INCLUDE_DIR);$(MG_GEOMETRY_INCLUDE_DIR);$(MG_PLATFORMBASE_INCLUDE_DIR);$(MG_MAPGUIDECOMMON_INCLUDE_DIR);$(MG_OEM_ACE_INCLUDE_DIR);$(MG_OEM_XERCES_INCLUDE_DIR);$(PHP_SRC);$(PHP_SRC)\main;$(PHP_SRC)\TSRM;$(PHP_SRC)\Zend;$(PHP_SRC)\ext\w32api;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;_ALLOW_KEYWORD_MACROS;PHPPROXYAPI_EXPORTS;ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;ZTS=1;PHP;_WIN64;%(PreprocessorDefinitions) Async MultiThreadedDLL Level3 @@ -218,9 +218,9 @@ $(SWIG_TOOL_PATH)\swig -c++ -php7 -DWIN32 -DPHPSWIG -fcompact -nodefaultctor -no true - ACE.lib;xerces-c_3mg.lib;php5ts.lib;%(AdditionalDependencies) + ACE.lib;xerces-c_3mg.lib;php7ts.lib;%(AdditionalDependencies) $(OutDir)php_MapGuideApi.dll - ..\..\..\Oem\ACE\ACE_wrappers\lib64\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration)64;$(PHP_LIB);%(AdditionalLibraryDirectories) + $(MG_SDK_LIB64);..\..\..\Oem\ACE\ACE_wrappers\lib64\$(Configuration);..\..\..\Oem\dbxml\xerces-c-src\Build\$(Configuration)64;$(PHP_LIB);%(AdditionalLibraryDirectories) true $(OutDir)php_MapGuideApi.pdb Windows diff --git a/thirdparty/php7/src/php-7.2.6/main/config.w32.h b/thirdparty/php7/src/php-7.2.6/main/config.w32.h new file mode 100644 index 0000000..4d46105 --- /dev/null +++ b/thirdparty/php7/src/php-7.2.6/main/config.w32.h @@ -0,0 +1,265 @@ +/* + Build Configuration Template for Win32. + $Id$ +*/ + +/* Define the minimum supported version */ +#undef _WIN32_WINNT +#undef NTDDI_VERSION +#define _WIN32_WINNT 0x0601 +#define NTDDI_VERSION 0x06010000 + +/* Default PHP / PEAR directories */ +#define PHP_CONFIG_FILE_PATH (getenv("SystemRoot")?getenv("SystemRoot"):"") +#define CONFIGURATION_FILE_PATH "php.ini" +#define PEAR_INSTALLDIR "C:\\php\\pear" +#define PHP_BINDIR "C:\\php" +#define PHP_DATADIR "C:\\php" +#define PHP_EXTENSION_DIR "C:\\php\\ext" +#define PHP_INCLUDE_PATH ".;C:\\php\\pear" +#define PHP_LIBDIR "C:\\php" +#define PHP_LOCALSTATEDIR "C:\\php" +#define PHP_PREFIX "C:\\php" +#define PHP_SYSCONFDIR "C:\\php" + +/* PHP Runtime Configuration */ +#define PHP_URL_FOPEN 1 +#define USE_CONFIG_FILE 1 +#define DEFAULT_SHORT_OPEN_TAG "1" + +/* Platform-Specific Configuration. Should not be changed. */ +#define PHP_SIGCHILD 0 +#define HAVE_LIBBIND 1 +#define HAVE_GETSERVBYNAME 1 +#define HAVE_GETSERVBYPORT 1 +#define HAVE_GETPROTOBYNAME 1 +#define HAVE_GETPROTOBYNUMBER 1 +#define HAVE_GETHOSTNAME 1 +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 +#define HAVE_ERRMSG_H 0 +#undef HAVE_ADABAS +#undef HAVE_SOLID +#undef HAVE_LINK +#undef HAVE_SYMLINK + +/* its in win32/time.c */ +#define HAVE_USLEEP 1 +#define HAVE_NANOSLEEP 1 +#define PHP_SLEEP_NON_VOID 1 + +#define HAVE_GETHOSTNAME 1 +#define HAVE_GETCWD 1 +#define HAVE_POSIX_READDIR_R 1 +#define NEED_ISBLANK 1 +#define DISCARD_PATH 0 +#undef HAVE_SETITIMER +#undef HAVE_SIGSETJMP +#undef HAVE_IODBC +#define HAVE_LIBDL 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_PUTENV 1 +#define HAVE_LIMITS_H 1 +#define HAVE_TZSET 1 +#define HAVE_TZNAME 1 +#undef HAVE_FLOCK +#define HAVE_ALLOCA 1 +#undef HAVE_SYS_TIME_H +#define HAVE_SIGNAL_H 1 +#undef HAVE_ST_BLKSIZE +#undef HAVE_ST_BLOCKS +#define HAVE_ST_RDEV 1 +#define HAVE_UTIME_NULL 1 +#define HAVE_VPRINTF 1 +#define STDC_HEADERS 1 +#define REGEX 1 +#define HSREGEX 1 +#define HAVE_GCVT 1 +#define HAVE_GETLOGIN 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_PUTENV 1 +#define HAVE_REGCOMP 1 +#define HAVE_SETLOCALE 1 +#define HAVE_LOCALECONV 1 +#define HAVE_LOCALE_H 1 +#ifndef HAVE_LIBBIND +# define HAVE_SETVBUF 1 +#endif +#define HAVE_SHUTDOWN 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRDUP 1 +#define HAVE_STRERROR 1 +#define HAVE_STRSTR 1 +#define HAVE_TEMPNAM 1 +#define HAVE_UTIME 1 +#undef HAVE_DIRENT_H +#define HAVE_ASSERT_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_GRP_H 0 +#undef HAVE_PWD_H +#define HAVE_STRING_H 1 +#undef HAVE_SYS_FILE_H +#undef HAVE_SYS_SOCKET_H +#undef HAVE_SYS_WAIT_H +#define HAVE_SYSLOG_H 1 +#undef HAVE_UNISTD_H +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDARG_H 1 +#undef HAVE_ALLOCA_H +#undef HAVE_KILL +#define HAVE_GETPID 1 +#define HAVE_LIBM 1 +#define HAVE_CUSERID 0 +#undef HAVE_RINT +#define HAVE_STRFTIME 1 +#define SIZEOF_SHORT 2 +/* int and long are stll 32bit in 64bit compiles */ +#define SIZEOF_INT 4 +#define SIZEOF_LONG 4 +/* MSVC.6/NET don't allow 'long long' or know 'intmax_t' */ +#define SIZEOF_LONG_LONG_INT 0 +#define SIZEOF_LONG_LONG 8 /* defined as __int64 */ +#define SIZEOF_INTMAX_T 0 +#define ssize_t SSIZE_T +#ifdef _WIN64 +# define SIZEOF_SIZE_T 8 +# define SIZEOF_PTRDIFF_T 8 +#else +# define SIZEOF_SIZE_T 4 +# define SIZEOF_PTRDIFF_T 4 +#endif +#define HAVE_FNMATCH +#define HAVE_GLOB +#define PHP_SHLIB_SUFFIX "dll" +#define PHP_SHLIB_EXT_PREFIX "php_" +#define HAVE_SQLDATASOURCES + +/* Win32 supports strcoll */ +#define HAVE_STRCOLL 1 + +/* Win32 supports socketpair by the emulation in win32/sockets.c */ +#define HAVE_SOCKETPAIR 1 +#define HAVE_SOCKLEN_T 1 + +/* Win32 support proc_open */ +#define PHP_CAN_SUPPORT_PROC_OPEN 1 + +/* inet_ntop() / inet_pton() */ +#define HAVE_INET_PTON 1 +#define HAVE_INET_NTOP 1 + +#define HAVE_MBLEN + +#undef HAVE_ATOF_ACCEPTS_NAN +#undef HAVE_ATOF_ACCEPTS_INF +#define HAVE_HUGE_VAL_NAN 0 + +/* vs.net 2005 has a 64-bit time_t. This will likely break + * 3rdParty libs that were built with older compilers; switch + * back to 32-bit */ +#ifndef _WIN64 +# define _USE_32BIT_TIME_T 1 +#endif +#define HAVE_STDLIB_H 1 + +#define _REENTRANT 1 +#define HAVE_MBRLEN 1 +#define HAVE_MBSTATE_T 1 + +#define HAVE_HUGE_VAL_INF 1 + +#define HAVE_GETRUSAGE + +#define HAVE_FTOK 1 + +#define HAVE_NICE + +/* values determined by configure.js */ + +/* Configure line */ +#define CONFIGURE_COMMAND "cscript /nologo configure.js " + +/* Detected compiler version */ +#define COMPILER "MSVC14 (Visual C++ 2015)" + +/* Compiler compatibility ID */ +#define PHP_COMPILER_ID "VC14" + +/* Detected compiler architecture */ +#define ARCHITECTURE "x64" + +#define HAVE_STRNLEN 1 + +/* have the wspiapi.h header file */ +#define HAVE_WSPIAPI_H 1 + +#define HAVE_GETADDRINFO 1 + +#define HAVE_GAI_STRERROR 1 + +#define HAVE_IPV6 1 + +#define HAVE_USLEEP 1 + +#define HAVE_STRCOLL 1 + +/* Have BCMATH library */ +#define HAVE_BCMATH 1 + +/* Have calendar */ +#define HAVE_CALENDAR 1 + +/* Have COM_DOTNET support */ +#define HAVE_COM_DOTNET 1 + +/* Have ctype */ +#define HAVE_CTYPE 1 + +/* Have date/time support */ +#define HAVE_DATE 1 + +/* Have timelib_config.h */ +#define HAVE_TIMELIB_CONFIG_H 1 + +#define HAVE_HASH_EXT 1 + +/* have the zlib.h header file */ +#define HAVE_ZLIB_H 0 + +/* Define to enable file based caching (experimental) */ +#define HAVE_OPCACHE_FILE_CACHE 1 + +/* Using bundled PCRE library */ +#define HAVE_BUNDLED_PCRE 1 + +/* Have PCRE library */ +#define HAVE_PCRE 1 + +/* PCRE library */ +#define HAVE_PCRE_JIT_SUPPORT 1 + +/* Reflection support enabled */ +#define HAVE_REFLECTION 1 + +/* Session support */ +#define HAVE_PHP_SESSION 1 + +#define HAVE_SPL 1 + +#define PHP_CONFIG_FILE_SCAN_DIR "" + +#define PHP_USE_PHP_CRYPT_R 1 + +/* Tokenizer support */ +#define HAVE_TOKENIZER 1 + +#define PHAR_HASH_OK 1 + +#define HAVE_ACOSH 1 +#define HAVE_ASINH 1 +#define HAVE_ATANH 1