Skip to content

fix: icu-static-win, ext-swoole, krb5#1087

Merged
crazywhalecc merged 10 commits intomainfrom
fix/icu-static-win
Apr 10, 2026
Merged

fix: icu-static-win, ext-swoole, krb5#1087
crazywhalecc merged 10 commits intomainfrom
fix/icu-static-win

Conversation

@crazywhalecc
Copy link
Copy Markdown
Owner

@crazywhalecc crazywhalecc commented Apr 9, 2026

What does this PR do?

Checklist before merging

If your PR involves the changes mentioned below and completed the action, please tick the corresponding option.
If a modification is not involved, please skip it directly.

  • If you modified *.php or *.json, run them locally to ensure your changes are valid:
    • composer cs-fix
    • composer analyse
    • composer test
    • bin/spc dev:sort-config
  • If it's an extension or dependency update, please ensure the following:
    • Add your test combination to src/globals/test-extensions.php.
    • If adding new or fixing bugs, add commit message containing extension test or test extensions to trigger full test suite.

@crazywhalecc crazywhalecc requested a review from henderkes April 10, 2026 02:10
@henderkes
Copy link
Copy Markdown
Collaborator

run CI test please

@henderkes
Copy link
Copy Markdown
Collaborator

Just realized that macOS runners are still using Clang 17. Should really update to 19+ for vastly improved performance.

@crazywhalecc
Copy link
Copy Markdown
Owner Author

Just realized that macOS runners are still using Clang 17. Should really update to 19+ for vastly improved performance.

I already introduced a env var to handle this on v3, it will automatically use homebrew version of llvm.

; Whether to use brew version of llvm or system version (valid options: 'system', 'brew', default: 'system')
SPC_USE_LLVM=system

@crazywhalecc crazywhalecc added mixed PR This PR contains multiple updates labels Apr 10, 2026
@crazywhalecc crazywhalecc changed the title fix(icu_static_win): update paths for ICU static libraries and includes fix: icu-static-win, ext-swoole, krb5 Apr 10, 2026
@crazywhalecc crazywhalecc merged commit 6e354b4 into main Apr 10, 2026
13 checks passed
@crazywhalecc crazywhalecc deleted the fix/icu-static-win branch April 10, 2026 08:14
'-DWITH_SYSTEM_ZLIB=ON',
'-DWITH_TOOLS=OFF',
'-DWITH_TESTS=OFF',
'-DWITH_SIMD=OFF',
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have a variable for whether avx2/avx512 are enabled

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which one?

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found it:

$code = '#include <immintrin.h>
int main() { return _mm256_cvtsi256_si32(_mm256_setzero_si256()); }';
        $cc = getenv('CC') ?: 'gcc';
        [$ret] = shell()->execWithResult("printf '%s' '{$code}' | {$cc} -x c -mavx2 -o /dev/null - 2>&1");
        $disableAvx2 = $ret !== 0 && GNU_ARCH === 'x86_64' && PHP_OS_FAMILY === 'Linux';

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems better to abstract it into a separate method on v3 and pass it using environment variables.

Copy link
Copy Markdown
Collaborator

@henderkes henderkes Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should do it like php-src. There's a --enable-native-intrinsics=level switch that defines what level will be chosen.

Levels are SSE2 (default on x86), SSE3...4.2, AVX2, AVX512. On aarch64 I forgot the names something like neonv8.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can create a separate issue tracking it though

crazywhalecc added a commit that referenced this pull request Apr 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mixed PR This PR contains multiple updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Followed From CLI Build Command Generator and got error Build failed after adding sqlsrv,pdo_sqlsrv Swoole build bug on gnu-docker

2 participants