diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-02-14 10:02:58 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-02-14 10:02:58 +0100 |
commit | 3ece2640ea97027636e321e6f6e112dff815bea7 (patch) | |
tree | ff5784cb8ef2556360b6811a97967df906b77b5c | |
parent | ea3cda0315852190a1bbf2ef16ca62a6410c3615 (diff) | |
parent | 7bc162f928fe8144eddf95ca4bda5377787c8720 (diff) | |
download | php-git-3ece2640ea97027636e321e6f6e112dff815bea7.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
-rw-r--r-- | Zend/zend_portability.h | 2 | ||||
-rw-r--r-- | configure.ac | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index cc11bb4b40..e550651753 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -575,7 +575,7 @@ static zend_always_inline double _zend_get_nan(void) /* {{{ */ # define ZEND_INTRIN_SSSE3_FUNC_DECL(func) #endif -#ifdef __SSE4_2__ +#if defined(HAVE_SSE4_2_DEF) || (defined(ZEND_WIN32) && defined(__SSE4_2__)) /* Instructions compiled directly. */ # define ZEND_INTRIN_SSE4_2_NATIVE 1 #elif (defined(HAVE_FUNC_ATTRIBUTE_TARGET) && defined(PHP_HAVE_SSE4_2)) || defined(ZEND_WIN32) diff --git a/configure.ac b/configure.ac index ad110b2213..4a91cd214d 100644 --- a/configure.ac +++ b/configure.ac @@ -561,6 +561,24 @@ PHP_CHECK_CPU_SUPPORTS([sse4.2]) PHP_CHECK_CPU_SUPPORTS([avx]) PHP_CHECK_CPU_SUPPORTS([avx2]) +dnl The ABI of php_addslashes in PHP 7.3 is dependent on __SSE4_2__, +dnl which depends on target attributes. Use this check to make sure that +dnl SSE 4.2 availability during the PHP compilation is used, independently +dnl of whether extensions are compiled with SSE 4.2 support. +AC_MSG_CHECKING([whether __SSE4_2__ is defined]) +AC_RUN_IFELSE([AC_LANG_SOURCE([[ +int main() { +#if defined(__SSE4_2__) + return 0; +#else + return 1; +#endif +} +]])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_SSE4_2_DEF, 1, [Define if __SSE4_2__ has been defined]) +], [AC_MSG_RESULT([no])], [AC_MSG_RESULT([no])]) + dnl Check for members of the stat structure AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev]) dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exist |