diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch new file mode 100644 index 00000000000..4101f24459b --- /dev/null +++ b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch @@ -0,0 +1,48 @@ +From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001 +From: Isaac Freund +Date: Tue, 21 Sep 2021 21:06:10 +0200 +Subject: [PATCH] std.build: fix handling of -Dcpu + +Currently -Dcpu is completely ignored if -Dtarget isn't passed as well. +Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed. + +This patch fixes these 2 issues, always respecting the -Dcpu option if +present. +--- + lib/std/build.zig | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/lib/std/build.zig b/lib/std/build.zig +index 9b7ebb1f4..e398529f9 100644 +--- a/lib/std/build.zig ++++ b/lib/std/build.zig +@@ -685,7 +685,11 @@ pub const Builder = struct { + ); + const mcpu = self.option([]const u8, "cpu", "Target CPU"); + +- const triple = maybe_triple orelse return args.default_target; ++ if (maybe_triple == null and mcpu == null) { ++ return args.default_target; ++ } ++ ++ const triple = maybe_triple orelse "native"; + + var diags: CrossTarget.ParseOptions.Diagnostics = .{}; + const selected_target = CrossTarget.parse(.{ +@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct { + + if (populated_cpu_features.eql(cross.cpu.features)) { + // The CPU name alone is sufficient. +- // If it is the baseline CPU, no command line args are required. +- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) { +- try zig_args.append("-mcpu"); +- try zig_args.append(cross.cpu.model.name); +- } ++ try zig_args.append("-mcpu"); ++ try zig_args.append(cross.cpu.model.name); + } else { + var mcpu_buffer = std.ArrayList(u8).init(builder.allocator); + +-- +2.33.1 + diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template index 893ba0ec054..728c5a64e9d 100644 --- a/srcpkgs/zig/template +++ b/srcpkgs/zig/template @@ -1,13 +1,13 @@ # Template file for 'zig' pkgname=zig version=0.8.1 -revision=1 +revision=2 archs="x86_64* aarch64*" build_style=cmake make_cmd=make makedepends="clang llvm12 lld-devel" short_desc="Programming language designed for robustness, optimality, and clarity" -maintainer="Isaac Freund " +maintainer="Isaac Freund " license="MIT" homepage="https://ziglang.org" distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"