From a8492f06bb9de4d1a71c9f86407558a0a1c3e542 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Sun, 27 Jul 2025 01:07:54 +0700 Subject: [PATCH] use zig's linker too (ends up getting used automatically in most cases, anyway, but better be explicit) --- src/SPC/store/pkg/Zig.php | 3 ++- src/SPC/toolchain/ZigToolchain.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SPC/store/pkg/Zig.php b/src/SPC/store/pkg/Zig.php index eb56fdc4..14b444d8 100644 --- a/src/SPC/store/pkg/Zig.php +++ b/src/SPC/store/pkg/Zig.php @@ -16,7 +16,7 @@ class Zig extends CustomPackage public static function isInstalled(): bool { $path = self::getPath(); - $files = ['zig', 'zig-cc', 'zig-c++', 'zig-ar', 'zig-ranlib', 'zig-objcopy']; + $files = ['zig', 'zig-cc', 'zig-c++', 'zig-ar', 'zig-ld.lld', 'zig-ranlib', 'zig-objcopy']; foreach ($files as $file) { if (!file_exists("{$path}/{$file}")) { return false; @@ -169,6 +169,7 @@ class Zig extends CustomPackage $script_content = str_replace('zig cc', 'zig c++', $script_content); file_put_contents("{$bin_dir}/zig-c++", $script_content); file_put_contents("{$bin_dir}/zig-ar", "#!/usr/bin/env bash\nexec zig ar $@"); + file_put_contents("{$bin_dir}/zig-ld.lld", "#!/usr/bin/env bash\nexec zig ld.lld $@"); file_put_contents("{$bin_dir}/zig-ranlib", "#!/usr/bin/env bash\nexec zig ranlib $@"); file_put_contents("{$bin_dir}/zig-objcopy", "#!/usr/bin/env bash\nexec zig objcopy $@"); chmod("{$bin_dir}/zig-c++", 0755); diff --git a/src/SPC/toolchain/ZigToolchain.php b/src/SPC/toolchain/ZigToolchain.php index b8061b0d..613c0f97 100644 --- a/src/SPC/toolchain/ZigToolchain.php +++ b/src/SPC/toolchain/ZigToolchain.php @@ -16,7 +16,7 @@ class ZigToolchain implements ToolchainInterface GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CC=zig-cc'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CXX=zig-c++'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_AR=zig-ar'); - GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_LD=ld'); + GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_LD=zig-ld.lld'); // Generate additional objects needed for zig toolchain $paths = ['/usr/lib/gcc', '/usr/local/lib/gcc'];