mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-13 20:05:35 +08:00
don't add fno-sanitize=undefined for library builds
This commit is contained in:
@@ -20,8 +20,11 @@ use StaticPHP\Package\PhpExtensionPackage;
|
|||||||
use StaticPHP\Package\TargetPackage;
|
use StaticPHP\Package\TargetPackage;
|
||||||
use StaticPHP\Runtime\SystemTarget;
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
use StaticPHP\Toolchain\Interface\ToolchainInterface;
|
use StaticPHP\Toolchain\Interface\ToolchainInterface;
|
||||||
|
use StaticPHP\Toolchain\ToolchainManager;
|
||||||
|
use StaticPHP\Toolchain\ZigToolchain;
|
||||||
use StaticPHP\Util\DirDiff;
|
use StaticPHP\Util\DirDiff;
|
||||||
use StaticPHP\Util\FileSystem;
|
use StaticPHP\Util\FileSystem;
|
||||||
|
use StaticPHP\Util\GlobalEnvManager;
|
||||||
use StaticPHP\Util\InteractiveTerm;
|
use StaticPHP\Util\InteractiveTerm;
|
||||||
use StaticPHP\Util\SourcePatcher;
|
use StaticPHP\Util\SourcePatcher;
|
||||||
use StaticPHP\Util\SPCConfigUtil;
|
use StaticPHP\Util\SPCConfigUtil;
|
||||||
@@ -90,6 +93,11 @@ trait unix
|
|||||||
$args = [];
|
$args = [];
|
||||||
$version_id = self::getPHPVersionID();
|
$version_id = self::getPHPVersionID();
|
||||||
|
|
||||||
|
// disable undefined behavior sanitizer for zig, trips up on lua minijit and opcache-jit
|
||||||
|
if (SystemTarget::getTargetOS() === 'Linux' && ToolchainManager::getToolchainClass() === ZigToolchain::class) {
|
||||||
|
$compiler_extra = getenv('SPC_COMPILER_EXTRA') ?: '';
|
||||||
|
GlobalEnvManager::putenv('SPC_COMPILER_EXTRA=' . trim($compiler_extra . ' -fno-sanitize=undefined'));
|
||||||
|
}
|
||||||
// PHP JSON extension is built-in since PHP 8.0
|
// PHP JSON extension is built-in since PHP 8.0
|
||||||
if ($version_id < 80000) {
|
if ($version_id < 80000) {
|
||||||
$args[] = '--enable-json';
|
$args[] = '--enable-json';
|
||||||
|
|||||||
@@ -35,10 +35,6 @@ class ZigToolchain implements UnixToolchainInterface
|
|||||||
GlobalEnvManager::putenv("SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS={$extraCflags}");
|
GlobalEnvManager::putenv("SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS={$extraCflags}");
|
||||||
GlobalEnvManager::putenv('RANLIB=zig-ranlib');
|
GlobalEnvManager::putenv('RANLIB=zig-ranlib');
|
||||||
GlobalEnvManager::putenv('OBJCOPY=zig-objcopy');
|
GlobalEnvManager::putenv('OBJCOPY=zig-objcopy');
|
||||||
$compiler_extra = getenv('SPC_COMPILER_EXTRA') ?: '';
|
|
||||||
if (!str_contains($compiler_extra, '-fno-sanitize=undefined')) {
|
|
||||||
GlobalEnvManager::putenv('SPC_COMPILER_EXTRA=' . trim($compiler_extra . ' -fno-sanitize=undefined'));
|
|
||||||
}
|
|
||||||
$extra_libs = getenv('SPC_EXTRA_LIBS') ?: '';
|
$extra_libs = getenv('SPC_EXTRA_LIBS') ?: '';
|
||||||
if (!str_contains($extra_libs, '-lunwind')) {
|
if (!str_contains($extra_libs, '-lunwind')) {
|
||||||
// Add unwind library if not already present
|
// Add unwind library if not already present
|
||||||
|
|||||||
Reference in New Issue
Block a user