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.
This commit is contained in:
parent
7ba71aeed4
commit
c9e79da765
2 changed files with 50 additions and 2 deletions
|
@ -0,0 +1,48 @@
|
||||||
|
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
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# Template file for 'zig'
|
# Template file for 'zig'
|
||||||
pkgname=zig
|
pkgname=zig
|
||||||
version=0.8.1
|
version=0.8.1
|
||||||
revision=1
|
revision=2
|
||||||
archs="x86_64* aarch64*"
|
archs="x86_64* aarch64*"
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
make_cmd=make
|
make_cmd=make
|
||||||
makedepends="clang llvm12 lld-devel"
|
makedepends="clang llvm12 lld-devel"
|
||||||
short_desc="Programming language designed for robustness, optimality, and clarity"
|
short_desc="Programming language designed for robustness, optimality, and clarity"
|
||||||
maintainer="Isaac Freund <ifreund@ifreund.xyz>"
|
maintainer="Isaac Freund <mail@isaacfreund.com>"
|
||||||
license="MIT"
|
license="MIT"
|
||||||
homepage="https://ziglang.org"
|
homepage="https://ziglang.org"
|
||||||
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
|
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
|
||||||
|
|
Loading…
Reference in a new issue