From 21149f6807c6f8ea924ab3dbe4b2d27b76ba512c Mon Sep 17 00:00:00 2001 From: henderkes Date: Tue, 23 Sep 2025 12:42:29 +0200 Subject: [PATCH] simdjson needs patch --- src/SPC/builder/extension/simdjson.php | 4 ++++ src/SPC/util/SPCConfigUtil.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/SPC/builder/extension/simdjson.php b/src/SPC/builder/extension/simdjson.php index 19afd0f9..914fd674 100644 --- a/src/SPC/builder/extension/simdjson.php +++ b/src/SPC/builder/extension/simdjson.php @@ -38,6 +38,10 @@ class simdjson extends Extension { $env = parent::getSharedExtensionEnv(); if (ToolchainManager::getToolchainClass() === ZigToolchain::class) { + $extra = getenv('SPC_COMPILER_EXTRA'); + if (!str_contains((string) $extra, '-lstdc++')) { + f_putenv('SPC_COMPILER_EXTRA=' . clean_spaces($extra . ' -lstdc++')); + } $env['CFLAGS'] .= ' -Xclang -target-feature -Xclang +evex512'; $env['CXXFLAGS'] .= ' -Xclang -target-feature -Xclang +evex512'; } diff --git a/src/SPC/util/SPCConfigUtil.php b/src/SPC/util/SPCConfigUtil.php index d19cc858..49561c5b 100644 --- a/src/SPC/util/SPCConfigUtil.php +++ b/src/SPC/util/SPCConfigUtil.php @@ -87,7 +87,7 @@ class SPCConfigUtil if (SPCTarget::getTargetOS() === 'Darwin') { $libs .= " {$this->getFrameworksString($extensions)}"; } - if ($this->builder->hasCpp()) { + if ($this->builder->hasCpp() || collect($extensions)->contains(static fn (string $ext) => Config::getExt($ext)['cpp-extension'] ?? false)) { $libcpp = SPCTarget::getTargetOS() === 'Darwin' ? '-lc++' : '-lstdc++'; $libs = str_replace($libcpp, '', $libs) . " {$libcpp}"; }