mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-08 09:25:35 +08:00
patch 8.3 src to use avx512 cache vars (#1115)
This commit is contained in:
@@ -95,6 +95,10 @@ class SourcePatcher
|
|||||||
// patch php-src/build/php.m4 PKG_CHECK_MODULES -> PKG_CHECK_MODULES_STATIC
|
// patch php-src/build/php.m4 PKG_CHECK_MODULES -> PKG_CHECK_MODULES_STATIC
|
||||||
FileSystem::replaceFileStr(SOURCE_PATH . '/php-src/build/php.m4', 'PKG_CHECK_MODULES(', 'PKG_CHECK_MODULES_STATIC(');
|
FileSystem::replaceFileStr(SOURCE_PATH . '/php-src/build/php.m4', 'PKG_CHECK_MODULES(', 'PKG_CHECK_MODULES_STATIC(');
|
||||||
|
|
||||||
|
if ($builder->getPHPVersionID() >= 80300 && $builder->getPHPVersionID() < 80400) {
|
||||||
|
self::patchFile('spc_fix_avx512_cache_before_80400.patch', SOURCE_PATH . '/php-src');
|
||||||
|
}
|
||||||
|
|
||||||
if ($builder->getOption('enable-micro-win32')) {
|
if ($builder->getOption('enable-micro-win32')) {
|
||||||
self::patchMicroWin32();
|
self::patchMicroWin32();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
91
src/globals/patch/spc_fix_avx512_cache_before_80400.patch
Normal file
91
src/globals/patch/spc_fix_avx512_cache_before_80400.patch
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
--- a/build/php.m4
|
||||||
|
+++ b/build/php.m4
|
||||||
|
@@ -2812,27 +2812,26 @@
|
||||||
|
dnl PHP_CHECK_AVX512_SUPPORTS
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([PHP_CHECK_AVX512_SUPPORTS], [
|
||||||
|
- AC_MSG_CHECKING([for avx512 supports in compiler])
|
||||||
|
- save_CFLAGS="$CFLAGS"
|
||||||
|
- CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw $CFLAGS"
|
||||||
|
-
|
||||||
|
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
- #include <immintrin.h>
|
||||||
|
- int main(void) {
|
||||||
|
- __m512i mask = _mm512_set1_epi32(0x1);
|
||||||
|
- char out[32];
|
||||||
|
- _mm512_storeu_si512(out, _mm512_shuffle_epi8(mask, mask));
|
||||||
|
- return 0;
|
||||||
|
- }]])], [
|
||||||
|
+ AC_CACHE_CHECK([whether compiler supports AVX-512], [php_cv_have_avx512], [
|
||||||
|
+ save_CFLAGS="$CFLAGS"
|
||||||
|
+ CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw $CFLAGS"
|
||||||
|
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
+ #include <immintrin.h>
|
||||||
|
+ int main(void) {
|
||||||
|
+ __m512i mask = _mm512_set1_epi32(0x1);
|
||||||
|
+ char out[32];
|
||||||
|
+ _mm512_storeu_si512(out, _mm512_shuffle_epi8(mask, mask));
|
||||||
|
+ return 0;
|
||||||
|
+ }]])],
|
||||||
|
+ [php_cv_have_avx512=yes],
|
||||||
|
+ [php_cv_have_avx512=no])
|
||||||
|
+ CFLAGS="$save_CFLAGS"
|
||||||
|
+ ])
|
||||||
|
+ if test "$php_cv_have_avx512" = "yes"; then
|
||||||
|
have_avx512_supports=1
|
||||||
|
- AC_MSG_RESULT([yes])
|
||||||
|
- ], [
|
||||||
|
+ else
|
||||||
|
have_avx512_supports=0
|
||||||
|
- AC_MSG_RESULT([no])
|
||||||
|
- ])
|
||||||
|
-
|
||||||
|
- CFLAGS="$save_CFLAGS"
|
||||||
|
-
|
||||||
|
+ fi
|
||||||
|
AC_DEFINE_UNQUOTED([PHP_HAVE_AVX512_SUPPORTS],
|
||||||
|
[$have_avx512_supports], [Whether the compiler supports AVX512])
|
||||||
|
])
|
||||||
|
@@ -2841,24 +2840,26 @@
|
||||||
|
dnl PHP_CHECK_AVX512_VBMI_SUPPORTS
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([PHP_CHECK_AVX512_VBMI_SUPPORTS], [
|
||||||
|
- AC_MSG_CHECKING([for avx512 vbmi supports in compiler])
|
||||||
|
- save_CFLAGS="$CFLAGS"
|
||||||
|
- CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi $CFLAGS"
|
||||||
|
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
- #include <immintrin.h>
|
||||||
|
- int main(void) {
|
||||||
|
- __m512i mask = _mm512_set1_epi32(0x1);
|
||||||
|
- char out[32];
|
||||||
|
- _mm512_storeu_si512(out, _mm512_permutexvar_epi8(mask, mask));
|
||||||
|
- return 0;
|
||||||
|
- }]])], [
|
||||||
|
+ AC_CACHE_CHECK([whether compiler supports AVX-512 VBMI], [php_cv_have_avx512vbmi], [
|
||||||
|
+ save_CFLAGS="$CFLAGS"
|
||||||
|
+ CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi $CFLAGS"
|
||||||
|
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
+ #include <immintrin.h>
|
||||||
|
+ int main(void) {
|
||||||
|
+ __m512i mask = _mm512_set1_epi32(0x1);
|
||||||
|
+ char out[32];
|
||||||
|
+ _mm512_storeu_si512(out, _mm512_permutexvar_epi8(mask, mask));
|
||||||
|
+ return 0;
|
||||||
|
+ }]])],
|
||||||
|
+ [php_cv_have_avx512vbmi=yes],
|
||||||
|
+ [php_cv_have_avx512vbmi=no])
|
||||||
|
+ CFLAGS="$save_CFLAGS"
|
||||||
|
+ ])
|
||||||
|
+ if test "$php_cv_have_avx512vbmi" = "yes"; then
|
||||||
|
have_avx512_vbmi_supports=1
|
||||||
|
- AC_MSG_RESULT([yes])
|
||||||
|
- ], [
|
||||||
|
+ else
|
||||||
|
have_avx512_vbmi_supports=0
|
||||||
|
- AC_MSG_RESULT([no])
|
||||||
|
- ])
|
||||||
|
- CFLAGS="$save_CFLAGS"
|
||||||
|
+ fi
|
||||||
|
AC_DEFINE_UNQUOTED([PHP_HAVE_AVX512_VBMI_SUPPORTS],
|
||||||
|
[$have_avx512_vbmi_supports], [Whether the compiler supports AVX512 VBMI])
|
||||||
|
])
|
||||||
Reference in New Issue
Block a user