void-packages/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
Isaac Freund c9e79da765 zig: backport an upstream bugfix
This commit backports one bug fix from the zig master branch which is
critical for our use-case of building software for binary distribution.
2021-11-13 11:46:21 -03:00

49 lines
1.8 KiB
Diff

From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
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