hako pushed a commit to branch wip-zig-bootstrap
in repository guix.
commit 501faf1276403212dce7dd81cb1063c281456f8e
Author: Hilton Chain <[email protected]>
AuthorDate: Sat Dec 21 16:43:22 2024 +0800
gnu: Remove zig-0.9.
* gnu/packages/zig.scm (zig-0.10): Expand definition.
(zig-0.9-glibc-abi-tool,zig-0.9): Delete variables.
* gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch:
Delete file.
* gnu/packages/patches/zig-0.9-fix-runpath.patch: Delete file.
* gnu/packages/patches/zig-0.9-riscv-support.patch: Delete file.
* gnu/packages/patches/zig-0.9-use-system-paths.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Unregisiter them.
Change-Id: Ice060dad2b347edfe2743833e31eeabdec0b13dd
---
gnu/local.mk | 4 -
.../zig-0.9-build-respect-PKG_CONFIG-env-var.patch | 48 -------
gnu/packages/patches/zig-0.9-fix-runpath.patch | 27 ----
gnu/packages/patches/zig-0.9-riscv-support.patch | 47 -------
.../patches/zig-0.9-use-system-paths.patch | 136 -------------------
gnu/packages/zig.scm | 148 +++++----------------
6 files changed, 33 insertions(+), 377 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 6fa1a9fd45..c46ad41c49 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2387,11 +2387,7 @@ dist_patch_DATA =
\
%D%/packages/patches/xygrib-fix-finding-data.patch \
%D%/packages/patches/xygrib-newer-proj.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
- %D%/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch \
- %D%/packages/patches/zig-0.9-fix-runpath.patch \
- %D%/packages/patches/zig-0.9-riscv-support.patch \
%D%/packages/patches/zig-0.9-use-baseline-cpu-by-default.patch \
- %D%/packages/patches/zig-0.9-use-system-paths.patch \
%D%/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.10-fix-runpath.patch \
%D%/packages/patches/zig-0.10-use-system-paths.patch \
diff --git
a/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
deleted file mode 100644
index a1b41fcc55..0000000000
--- a/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 302d9fe6de6572f82c77c63585f77edb858197d7 Mon Sep 17 00:00:00 2001
-From: Hilton Chain <[email protected]>
-Date: Sun, 17 Nov 2024 18:08:21 +0800
-Subject: [PATCH 1/5] zig build: respect `PKG_CONFIG` environment variable
-
-[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b]
-
-`PKG_CONFIG` environment variable is used to override path to
-pkg-config executable, for example when it's name is prepended by
-target triple for cross-compilation purposes:
-
-```
-PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
-```
-
-Signed-off-by: Eric Joldasov <[email protected]>
----
- lib/std/build.zig | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 8eda542d6e..e44093bde4 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -1265,7 +1265,8 @@ pub const Builder = struct {
- }
-
- fn execPkgConfigList(self: *Builder, out_code: *u8) ![]const PkgConfigPkg
{
-- const stdout = try self.execAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
-+ const pkg_config_exe = self.env_map.get("PKG_CONFIG") orelse
"pkg-config";
-+ const stdout = try self.execAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
- var list = ArrayList(PkgConfigPkg).init(self.allocator);
- errdefer list.deinit();
- var line_it = mem.tokenize(u8, stdout, "\r\n");
-@@ -1932,8 +1933,9 @@ pub const LibExeObjStep = struct {
- };
-
- var code: u8 = undefined;
-+ const pkg_config_exe = self.builder.env_map.get("PKG_CONFIG") orelse
"pkg-config";
- const stdout = if (self.builder.execAllowFail(&[_][]const u8{
-- "pkg-config",
-+ pkg_config_exe,
- pkg_name,
- "--cflags",
- "--libs",
---
-2.46.0
-
diff --git a/gnu/packages/patches/zig-0.9-fix-runpath.patch
b/gnu/packages/patches/zig-0.9-fix-runpath.patch
deleted file mode 100644
index 65677f6b06..0000000000
--- a/gnu/packages/patches/zig-0.9-fix-runpath.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 97d6b38ee78941b96bfd30dc2c814fd9c38561e3 Mon Sep 17 00:00:00 2001
-From: Hilton Chain <[email protected]>
-Date: Wed, 27 Nov 2024 11:55:44 +0800
-Subject: [PATCH] Fix RUNPATH issue.
-
-Add needed libraries and libc to RUNPATH when CROSS_LIBRARY_PATH or
LIBRARY_PATH
-is set.
----
- src/Compilation.zig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Compilation.zig b/src/Compilation.zig
-index b44c7da78d..be28538e6a 100644
---- a/src/Compilation.zig
-+++ b/src/Compilation.zig
-@@ -1515,7 +1515,7 @@ pub fn create(gpa: Allocator, options: InitOptions)
!*Compilation {
- .llvm_cpu_features = llvm_cpu_features,
- .skip_linker_dependencies = options.skip_linker_dependencies,
- .parent_compilation_link_libc =
options.parent_compilation_link_libc,
-- .each_lib_rpath = options.each_lib_rpath orelse
options.is_native_os,
-+ .each_lib_rpath = std.zig.system.NativePaths.isGuix(arena) or
options.each_lib_rpath orelse false,
- .disable_lld_caching = options.disable_lld_caching,
- .subsystem = options.subsystem,
- .is_test = options.is_test,
---
-2.46.0
-
diff --git a/gnu/packages/patches/zig-0.9-riscv-support.patch
b/gnu/packages/patches/zig-0.9-riscv-support.patch
deleted file mode 100644
index 372a68ea02..0000000000
--- a/gnu/packages/patches/zig-0.9-riscv-support.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-https://github.com/ziglang/zig/commit/ca3c4ff2d0afcdc8fe86e7e7b41a967c88779729
-From: Shupei Fan <[email protected]>
-zig0: properly set llvm_cpu_names and llvm_cpu_features for riscv
-
-Bug: https://bugs.gentoo.org/851732
-
---- a/src/stage1/zig0.cpp
-+++ b/src/stage1/zig0.cpp
-@@ -160,6 +160,17 @@ static void get_native_target(ZigTarget *target) {
- }
- }
-
-+static const char* get_baseline_llvm_cpu_name(ZigLLVM_ArchType arch) {
-+ return "";
-+}
-+
-+static const char* get_baseline_llvm_cpu_features(ZigLLVM_ArchType arch) {
-+ switch (arch) {
-+ case ZigLLVM_riscv64: return "+a,+c,+d,+m";
-+ default: return "";
-+ }
-+}
-+
- static Error target_parse_triple(struct ZigTarget *target, const char
*zig_triple, const char *mcpu,
- const char *dynamic_linker)
- {
-@@ -178,8 +189,8 @@ static Error target_parse_triple(struct ZigTarget *target,
const char *zig_tripl
- } else if (strcmp(mcpu, "baseline") == 0) {
- target->is_native_os = false;
- target->is_native_cpu = false;
-- target->llvm_cpu_name = "";
-- target->llvm_cpu_features = "";
-+ target->llvm_cpu_name = get_baseline_llvm_cpu_name(target->arch);
-+ target->llvm_cpu_features =
get_baseline_llvm_cpu_features(target->arch);
- } else {
- const char *msg = "stage0 can't handle CPU/features in the
target";
- stage2_panic(msg, strlen(msg));
-@@ -220,6 +231,9 @@ static Error target_parse_triple(struct ZigTarget *target,
const char *zig_tripl
- const char *msg = "stage0 can't handle CPU/features in the
target";
- stage2_panic(msg, strlen(msg));
- }
-+
-+ target->llvm_cpu_name = get_baseline_llvm_cpu_name(target->arch);
-+ target->llvm_cpu_features =
get_baseline_llvm_cpu_features(target->arch);
- }
-
- return ErrorNone;
diff --git a/gnu/packages/patches/zig-0.9-use-system-paths.patch
b/gnu/packages/patches/zig-0.9-use-system-paths.patch
deleted file mode 100644
index 81799aa5ee..0000000000
--- a/gnu/packages/patches/zig-0.9-use-system-paths.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 751da768de9b58126fef8f69c70eea5c4180f739 Mon Sep 17 00:00:00 2001
-From: Hilton Chain <[email protected]>
-Date: Wed, 27 Nov 2024 11:54:51 +0800
-Subject: [PATCH] Use system paths.
-
-Prefer Guix search paths and support Guix cross builds.
----
- lib/std/zig/system/NativePaths.zig | 56 ++++++++++++++++++++++++-
- lib/std/zig/system/NativeTargetInfo.zig | 25 +++++++++--
- src/main.zig | 3 +-
- 3 files changed, 78 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/zig/system/NativePaths.zig
b/lib/std/zig/system/NativePaths.zig
-index 8e3e46e481..bb6ac32da6 100644
---- a/lib/std/zig/system/NativePaths.zig
-+++ b/lib/std/zig/system/NativePaths.zig
-@@ -25,7 +25,53 @@ pub fn detect(allocator: Allocator, native_info:
NativeTargetInfo) !NativePaths
- .warnings = ArrayList([:0]u8).init(allocator),
- };
- errdefer self.deinit();
--
-+ if (isGuix(allocator)) {
-+ const guix_cross_include_paths = [_][]const u8{
"CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH" };
-+ for (guix_cross_include_paths) |env_var| {
-+ if (process.getEnvVarOwned(allocator, env_var)) |include_path| {
-+ var it = mem.tokenize(u8, include_path, ":");
-+ while (it.next()) |dir|
-+ try self.addIncludeDir(dir);
-+ } else |err| switch (err) {
-+ error.InvalidUtf8 => {},
-+ error.EnvironmentVariableNotFound => {},
-+ error.OutOfMemory => |e| return e,
-+ }
-+ }
-+ if (process.getEnvVarOwned(allocator, "CROSS_LIBRARY_PATH"))
|library_path| {
-+ var it = mem.tokenize(u8, library_path, ":");
-+ while (it.next()) |dir|
-+ try self.addLibDir(dir);
-+ } else |err| switch (err) {
-+ error.InvalidUtf8 => {},
-+ error.EnvironmentVariableNotFound => {},
-+ error.OutOfMemory => |e| return e,
-+ }
-+ if (!isCrossGuix(allocator)) {
-+ const guix_include_paths = [_][]const u8{ "C_INCLUDE_PATH",
"CPLUS_INCLUDE_PATH" };
-+ for (guix_include_paths) |env_var| {
-+ if (process.getEnvVarOwned(allocator, env_var))
|include_path| {
-+ var it = mem.tokenize(u8, include_path, ":");
-+ while (it.next()) |dir|
-+ try self.addIncludeDir(dir);
-+ } else |err| switch (err) {
-+ error.InvalidUtf8 => {},
-+ error.EnvironmentVariableNotFound => {},
-+ error.OutOfMemory => |e| return e,
-+ }
-+ }
-+ if (process.getEnvVarOwned(allocator, "LIBRARY_PATH"))
|library_path| {
-+ var it = mem.tokenize(u8, library_path, ":");
-+ while (it.next()) |dir|
-+ try self.addLibDir(dir);
-+ } else |err| switch (err) {
-+ error.InvalidUtf8 => {},
-+ error.EnvironmentVariableNotFound => {},
-+ error.OutOfMemory => |e| return e,
-+ }
-+ }
-+ return self;
-+ }
- var is_nix = false;
- if (process.getEnvVarOwned(allocator, "NIX_CFLAGS_COMPILE"))
|nix_cflags_compile| {
- defer allocator.free(nix_cflags_compile);
-@@ -203,3 +249,11 @@ fn appendArray(self: *NativePaths, array:
*ArrayList([:0]u8), s: []const u8) !vo
- errdefer array.allocator.free(item);
- try array.append(item);
- }
-+
-+pub fn isCrossGuix(arena: Allocator) bool {
-+ return process.hasEnvVar(arena, "CROSS_LIBRARY_PATH") catch false;
-+}
-+
-+pub fn isGuix(arena: Allocator) bool {
-+ return isCrossGuix(arena) or process.hasEnvVar(arena, "LIBRARY_PATH")
catch false;
-+}
-diff --git a/lib/std/zig/system/NativeTargetInfo.zig
b/lib/std/zig/system/NativeTargetInfo.zig
-index af41fc7905..4ee5ee0b6e 100644
---- a/lib/std/zig/system/NativeTargetInfo.zig
-+++ b/lib/std/zig/system/NativeTargetInfo.zig
-@@ -784,10 +784,27 @@ fn defaultAbiAndDynamicLinker(cpu: Target.Cpu, os:
Target.Os, cross_target: Cros
- };
- return NativeTargetInfo{
- .target = target,
-- .dynamic_linker = if (cross_target.dynamic_linker.get() == null)
-- target.standardDynamicLinkerPath()
-- else
-- cross_target.dynamic_linker,
-+ .dynamic_linker = if (cross_target.dynamic_linker.get() == null) blk:
{
-+ var standard_linker = target.standardDynamicLinkerPath();
-+ if (standard_linker.get()) |standard_linker_path| {
-+ if (builtin.os.tag != .windows and builtin.os.tag != .wasi) {
-+ if (std.os.getenv("CROSS_LIBRARY_PATH") orelse
std.os.getenv("LIBRARY_PATH")) |library_path| {
-+ const linker_basename =
fs.path.basename(standard_linker_path);
-+ var buffer: [255]u8 = undefined;
-+ var it = mem.tokenize(u8, library_path, ":");
-+ while (it.next()) |dir| {
-+ const linker_fullpath = std.fmt.bufPrint(&buffer,
"{s}{s}{s}", .{ dir, fs.path.sep_str, linker_basename }) catch "";
-+ const guix_linker_path =
fs.cwd().realpath(linker_fullpath, &buffer) catch "";
-+ if (guix_linker_path.len != 0) {
-+ standard_linker.set(guix_linker_path);
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ }
-+ break :blk standard_linker;
-+ } else cross_target.dynamic_linker,
- };
- }
-
-diff --git a/src/main.zig b/src/main.zig
-index 42daa95d3a..1ab9d0f7aa 100644
---- a/src/main.zig
-+++ b/src/main.zig
-@@ -2039,7 +2039,8 @@ fn buildOutputType(
- want_native_include_dirs = true;
- }
-
-- if (sysroot == null and cross_target.isNativeOs() and
(system_libs.count() != 0 or want_native_include_dirs)) {
-+ if (std.zig.system.NativePaths.isCrossGuix(arena) or
-+ sysroot == null and cross_target.isNativeOs() and
(system_libs.count() != 0 or want_native_include_dirs)) {
- const paths = std.zig.system.NativePaths.detect(arena, target_info)
catch |err| {
- fatal("unable to detect native system paths: {s}",
.{@errorName(err)});
- };
---
-2.46.0
-
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 994bfc8b5a..224373f46a 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -100,32 +100,36 @@
;; IETF RFC documents have nonfree license.
(find-files "." "^rfc[0-9]+\\.txt"))))))
-(define zig-0.9-glibc-abi-tool
+(define zig-0.10-glibc-abi-tool
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ziglang/glibc-abi-tool")
- (commit "6f992064f821c612f68806422b2780c9260cbc4c")))
+ (commit "b07bf67ab3c15881f13b9c3c03bcec04535760bb")))
(file-name "glibc-abi-tool")
(sha256
- (base32 "0lsi3f2lkixcdidljby73by2sypywb813yqdapy9md4bi2h8hhgp"))))
+ (base32 "0csn3c9pj8wchwy5sk5lfnhjn8a3c8cp45fv7mkpi5bqxzdzf1na"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(substitute* "consolidate.zig"
+ (("(@ctz.)u.., " _ prefix) prefix)
+ (("(@popCount.)u.., " _ prefix) prefix)))))
-(define-public zig-0.9
+(define-public zig-0.10
(package
(name "zig")
- (version "0.9.1")
+ (version "0.10.1")
(source
(origin
(inherit (zig-source
version version
- "0nfvgg23sw50ksy0z0ml6lkdsvmd0278mq29m23dbb2jsirkhry7"))
+ "1sh5xjsksl52i4cfv1qj36sz5h0ln7cq4pdhgs3960mk8a90im7b"))
(patches
(search-patches
- "zig-0.9-build-respect-PKG_CONFIG-env-var.patch"
- "zig-0.9-riscv-support.patch"
+ "zig-0.10-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.9-use-baseline-cpu-by-default.patch"
- "zig-0.9-use-system-paths.patch"
- "zig-0.9-fix-runpath.patch"))))
+ "zig-0.10-use-system-paths.patch"
+ "zig-0.10-fix-runpath.patch"))))
(build-system cmake-build-system)
(arguments
(list
@@ -136,6 +140,8 @@
(cons '(guix build zig-utils)
'((guix build cmake-build-system)
(guix build utils)))
+ #:out-of-source? #f ;For tests.
+ #:tests? (not (%current-target-system))
#:configure-flags
#~(list (string-append "-DZIG_LIB_DIR=" #$output "/lib/zig")
"-DZIG_TARGET_MCPU=baseline"
@@ -146,29 +152,16 @@
(lookup-platform-by-target-or-system
(or (%current-target-system)
(%current-system))))))
+ "-DZIG_SHARED_LLVM=ON"
"-DZIG_USE_LLVM_CONFIG=ON")
- #:out-of-source? #f ; for tests
- ;; There are too many unclear test failures.
- #:tests? (not (or (target-riscv64?)
- (%current-target-system)))
#:phases
#~(modify-phases %standard-phases
- #$@(if (target-riscv64?)
- ;; It is unclear why all these tests fail to build.
- `((add-after 'unpack 'adjust-tests
- (lambda _
- (substitute* "build.zig"
- ((".*addRuntimeSafetyTests.*") "")
- ((".*addRunTranslatedCTests.*") ""))
- (substitute* "test/standalone.zig"
- ;; These tests fail to build on riscv64-linux.
- ;; They both contain 'exe.linkSystemLibrary("c");'
- ((".*shared_library.*") "")
- ((".*mix_o_files.*") "")
- ;; ld.lld: error: undefined symbol: __tls_get_addr
- ;; Is this symbol x86 only in glibc?
- ((".*link_static_lib_as_system_lib.*") "")))))
- '())
+ (add-after 'patch-source-shebangs 'patch-more-shebangs
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Zig uses information about an ELF file to determine the
+ ;; version of glibc and other data for native builds.
+ (substitute* "lib/std/zig/system/NativeTargetInfo.zig"
+ (("/usr/bin/env") (search-input-file inputs "bin/clang++")))))
(add-before 'configure 'zig-configure zig-configure)
(delete 'check)
(add-after 'install 'check
@@ -178,12 +171,9 @@
;; windows-msvc.
(unsetenv "ZIG_LIBC")
(invoke (string-append #$output "/bin/zig")
- ;; Testing the standard library takes >7.5GB RAM, and
- ;; will fail if it is OOM-killed. The 'test-toolchain'
- ;; target skips standard library and doc tests.
- "build" "test-toolchain"
- ;; Stage 2 is experimental, not what we run with `zig',
-
+ "build" "test"
+ ;; We're not testing the compiler bootstrap chain.
+ "-Dskip-stage1"
"-Dskip-stage2-tests"
;; Non-native tests try to link and execute non-native
;; binaries.
@@ -203,12 +193,14 @@
"abilists"
(string-append #$output "/lib/zig/libc/glibc"))))))))
(inputs
- (list clang-13 ;Clang propagates llvm.
- lld-13))
+ (list clang-15 ;Clang propagates llvm.
+ lld-15
+ zlib
+ `(,zstd "lib")))
;; Zig compiles fine with GCC, but also needs native LLVM libraries.
(native-inputs
- (list llvm-13
- zig-0.9-glibc-abi-tool))
+ (list llvm-15
+ zig-0.10-glibc-abi-tool))
(native-search-paths
(list $C_INCLUDE_PATH
$CPLUS_INCLUDE_PATH
@@ -233,83 +225,9 @@ toolchain. Among other features it provides
(supported-systems %64bit-supported-systems)
;; Stage3 can take a lot of time and isn't verbose.
(properties `((max-silent-time . 9600)
- ,@(clang-compiler-cpu-architectures "13")))
+ ,@(clang-compiler-cpu-architectures "15")))
(license license:expat)))
-(define zig-0.10-glibc-abi-tool
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ziglang/glibc-abi-tool")
- (commit "b07bf67ab3c15881f13b9c3c03bcec04535760bb")))
- (file-name "glibc-abi-tool")
- (sha256
- (base32 "0csn3c9pj8wchwy5sk5lfnhjn8a3c8cp45fv7mkpi5bqxzdzf1na"))
- (modules '((guix build utils)))
- (snippet
- #~(substitute* "consolidate.zig"
- (("(@ctz.)u.., " _ prefix) prefix)
- (("(@popCount.)u.., " _ prefix) prefix)))))
-
-(define-public zig-0.10
- (package
- (inherit zig-0.9)
- (name "zig")
- (version "0.10.1")
- (source
- (origin
- (inherit (zig-source
- version version
- "1sh5xjsksl52i4cfv1qj36sz5h0ln7cq4pdhgs3960mk8a90im7b"))
- (patches
- (search-patches
- "zig-0.10-build-respect-PKG_CONFIG-env-var.patch"
- "zig-0.9-use-baseline-cpu-by-default.patch"
- "zig-0.10-use-system-paths.patch"
- "zig-0.10-fix-runpath.patch"))))
- (arguments
- (substitute-keyword-arguments
- (strip-keyword-arguments '(#:tests?) (package-arguments zig-0.9))
- ((#:configure-flags flags ''())
- #~(cons "-DZIG_SHARED_LLVM=ON"
- #$flags))
- ((#:phases phases '%standard-phases)
- #~(modify-phases #$phases
- #$@(if (target-riscv64?)
- `((delete 'adjust-tests))
- '())
- (add-after 'patch-source-shebangs 'patch-more-shebangs
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Zig uses information about an ELF file to determine the
- ;; version of glibc and other data for native builds.
- (substitute* "lib/std/zig/system/NativeTargetInfo.zig"
- (("/usr/bin/env") (search-input-file inputs
"bin/clang++")))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- ;; error(libc_installation): msvc_lib_dir may not be empty
for
- ;; windows-msvc.
- (unsetenv "ZIG_LIBC")
- (invoke (string-append #$output "/bin/zig")
- "build" "test"
- ;; We're not testing the compiler bootstrap chain.
- "-Dskip-stage1"
- "-Dskip-stage2-tests"
- ;; Non-native tests try to link and execute
non-native
- ;; binaries.
- "-Dskip-non-native"))))))))
- (inputs
- (modify-inputs (package-inputs zig-0.9)
- (prepend zlib `(,zstd "lib"))
- (replace "clang" clang-15)
- (replace "lld" lld-15)))
- (native-inputs
- (modify-inputs (package-native-inputs zig-0.9)
- (replace "glibc-abi-tool" zig-0.10-glibc-abi-tool)
- (replace "llvm" llvm-15)))
- (properties `((max-silent-time . 9600)
- ,@(clang-compiler-cpu-architectures "15")))))
-
;;;
;;; Bootstrap path for Zig 0.11.