Update to Zig 0.8.1, update patches, add LLVM 13 patch, add conditions
This commit is contained in:
parent
840ad2e520
commit
8b6be487d3
@ -1,8 +1,9 @@
|
|||||||
From c1ecb97befdb6a1106c1651da69f08cfb34f754a Mon Sep 17 00:00:00 2001
|
From 9fda724c7fc3ad84b6efb2027e03b4407016230d Mon Sep 17 00:00:00 2001
|
||||||
From: Jan200101 <sentrycraft123@gmail.com>
|
From: Jan200101 <sentrycraft123@gmail.com>
|
||||||
Date: Sat, 12 Jun 2021 11:23:04 +0200
|
Date: Sat, 12 Jun 2021 11:23:04 +0200
|
||||||
Subject: [PATCH 1/2] specify the output lib, exe and include paths with flags
|
Subject: [PATCH 1/3] specify the output lib, exe and include paths with flags
|
||||||
|
|
||||||
|
(cherry picked from commit 5a4249fa25ab789a8c060e5ba71ca8b0358e9c8d)
|
||||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||||
---
|
---
|
||||||
lib/std/build.zig | 34 ++++++++++++++++++++++++++++----
|
lib/std/build.zig | 34 ++++++++++++++++++++++++++++----
|
||||||
@ -10,10 +11,10 @@ Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
|||||||
2 files changed, 52 insertions(+), 6 deletions(-)
|
2 files changed, 52 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/lib/std/build.zig b/lib/std/build.zig
|
diff --git a/lib/std/build.zig b/lib/std/build.zig
|
||||||
index 572f2b2be..a12186464 100644
|
index 9b7ebb1f4..208e83e71 100644
|
||||||
--- a/lib/std/build.zig
|
--- a/lib/std/build.zig
|
||||||
+++ b/lib/std/build.zig
|
+++ b/lib/std/build.zig
|
||||||
@@ -122,6 +122,12 @@ pub const Builder = struct {
|
@@ -124,6 +124,12 @@ pub const Builder = struct {
|
||||||
description: []const u8,
|
description: []const u8,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -26,7 +27,7 @@ index 572f2b2be..a12186464 100644
|
|||||||
pub fn create(
|
pub fn create(
|
||||||
allocator: *Allocator,
|
allocator: *Allocator,
|
||||||
zig_exe: []const u8,
|
zig_exe: []const u8,
|
||||||
@@ -190,7 +196,7 @@ pub const Builder = struct {
|
@@ -192,7 +198,7 @@ pub const Builder = struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This function is intended to be called by std/special/build_runner.zig, not a build.zig file.
|
/// This function is intended to be called by std/special/build_runner.zig, not a build.zig file.
|
||||||
@ -35,7 +36,7 @@ index 572f2b2be..a12186464 100644
|
|||||||
if (self.dest_dir) |dest_dir| {
|
if (self.dest_dir) |dest_dir| {
|
||||||
self.install_prefix = install_prefix orelse "/usr";
|
self.install_prefix = install_prefix orelse "/usr";
|
||||||
self.install_path = fs.path.join(self.allocator, &[_][]const u8{ dest_dir, self.install_prefix }) catch unreachable;
|
self.install_path = fs.path.join(self.allocator, &[_][]const u8{ dest_dir, self.install_prefix }) catch unreachable;
|
||||||
@@ -199,9 +205,29 @@ pub const Builder = struct {
|
@@ -201,9 +207,29 @@ pub const Builder = struct {
|
||||||
(fs.path.join(self.allocator, &[_][]const u8{ self.build_root, "zig-out" }) catch unreachable);
|
(fs.path.join(self.allocator, &[_][]const u8{ self.build_root, "zig-out" }) catch unreachable);
|
||||||
self.install_path = self.install_prefix;
|
self.install_path = self.install_prefix;
|
||||||
}
|
}
|
||||||
@ -69,7 +70,7 @@ index 572f2b2be..a12186464 100644
|
|||||||
|
|
||||||
pub fn addExecutable(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep {
|
pub fn addExecutable(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep {
|
||||||
diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig
|
diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig
|
||||||
index c6185ef09..da50548c6 100644
|
index d1154add0..d3f066a19 100644
|
||||||
--- a/lib/std/special/build_runner.zig
|
--- a/lib/std/special/build_runner.zig
|
||||||
+++ b/lib/std/special/build_runner.zig
|
+++ b/lib/std/special/build_runner.zig
|
||||||
@@ -61,6 +61,8 @@ pub fn main() !void {
|
@@ -61,6 +61,8 @@ pub fn main() !void {
|
||||||
@ -100,10 +101,10 @@ index c6185ef09..da50548c6 100644
|
|||||||
+ warn("Expected argument after {s}\n\n", .{arg});
|
+ warn("Expected argument after {s}\n\n", .{arg});
|
||||||
+ return usageAndErr(builder, false, stderr_stream);
|
+ return usageAndErr(builder, false, stderr_stream);
|
||||||
+ };
|
+ };
|
||||||
} else if (mem.eql(u8, arg, "--search-prefix")) {
|
} else if (mem.eql(u8, arg, "--sysroot")) {
|
||||||
const search_prefix = nextArg(args, &arg_idx) orelse {
|
const sysroot = nextArg(args, &arg_idx) orelse {
|
||||||
warn("Expected argument after --search-prefix\n\n", .{});
|
warn("Expected argument after --sysroot\n\n", .{});
|
||||||
@@ -135,7 +152,7 @@ pub fn main() !void {
|
@@ -147,7 +164,7 @@ pub fn main() !void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +113,7 @@ index c6185ef09..da50548c6 100644
|
|||||||
try runBuild(builder);
|
try runBuild(builder);
|
||||||
|
|
||||||
if (builder.validateUserInputDidItFail())
|
if (builder.validateUserInputDidItFail())
|
||||||
@@ -163,7 +180,7 @@ fn runBuild(builder: *Builder) anyerror!void {
|
@@ -175,7 +192,7 @@ fn runBuild(builder: *Builder) anyerror!void {
|
||||||
fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void {
|
fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void {
|
||||||
// run the build script to collect the options
|
// run the build script to collect the options
|
||||||
if (!already_ran_build) {
|
if (!already_ran_build) {
|
||||||
@ -121,16 +122,16 @@ index c6185ef09..da50548c6 100644
|
|||||||
try runBuild(builder);
|
try runBuild(builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,6 +206,9 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
|
@@ -201,6 +218,9 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
|
||||||
\\ -h, --help Print this help and exit
|
\\ -h, --help Print this help and exit
|
||||||
\\ --verbose Print commands before executing them
|
\\ --verbose Print commands before executing them
|
||||||
\\ -p, --prefix [path] Override default install prefix
|
\\ -p, --prefix [path] Override default install prefix
|
||||||
+ \\ --lib-dir [path] Override default library directory path
|
+ \\ --lib-dir [path] Override default library directory path
|
||||||
+ \\ --exe-dir [path] Override default executable directory path
|
+ \\ --exe-dir [path] Override default executable directory path
|
||||||
+ \\ --include-dir [path] Override default include directory path
|
+ \\ --include-dir [path] Override default include directory path
|
||||||
|
\\ --sysroot [path] Set the system root directory (usually /)
|
||||||
\\ --search-prefix [path] Add a path to look for binaries, libraries, headers
|
\\ --search-prefix [path] Add a path to look for binaries, libraries, headers
|
||||||
\\ --color [auto|off|on] Enable or disable colored error messages
|
\\ --libc [file] Provide a file which specifies libc paths
|
||||||
\\
|
|
||||||
--
|
--
|
||||||
2.31.1
|
2.31.1
|
||||||
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
From c95b2bd1f14f602b78f90714d5e614251fa83552 Mon Sep 17 00:00:00 2001
|
From 2128aaf02ac91cf07c449062c0cbffb3ab1fbe42 Mon Sep 17 00:00:00 2001
|
||||||
From: Andrew Kelley <andrew@ziglang.org>
|
From: Andrew Kelley <andrew@ziglang.org>
|
||||||
Date: Mon, 14 Jun 2021 11:56:58 -0700
|
Date: Mon, 14 Jun 2021 11:56:58 -0700
|
||||||
Subject: [PATCH 2/2] zig build: rename --lib-dir, --include-dir, --exe-dir
|
Subject: [PATCH 2/3] zig build: rename --lib-dir, --include-dir, --exe-dir
|
||||||
|
|
||||||
To --prefix-lib-dir, --prefix-include-dir, --prefix-exe-dir,
|
To --prefix-lib-dir, --prefix-include-dir, --prefix-exe-dir,
|
||||||
respectively.
|
respectively.
|
||||||
|
|
||||||
|
(cherry picked from commit 7d5538c32b7acfb6878be4178af2f71977d0cf9d)
|
||||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||||
---
|
---
|
||||||
lib/std/special/build_runner.zig | 18 ++++++++++--------
|
lib/std/special/build_runner.zig | 20 +++++++++++---------
|
||||||
1 file changed, 10 insertions(+), 8 deletions(-)
|
1 file changed, 11 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig
|
diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig
|
||||||
index da50548c6..f3c74279a 100644
|
index d3f066a19..366a0a2dc 100644
|
||||||
--- a/lib/std/special/build_runner.zig
|
--- a/lib/std/special/build_runner.zig
|
||||||
+++ b/lib/std/special/build_runner.zig
|
+++ b/lib/std/special/build_runner.zig
|
||||||
@@ -89,17 +89,17 @@ pub fn main() !void {
|
@@ -89,17 +89,17 @@ pub fn main() !void {
|
||||||
@ -36,24 +37,27 @@ index da50548c6..f3c74279a 100644
|
|||||||
dir_list.include_dir = nextArg(args, &arg_idx) orelse {
|
dir_list.include_dir = nextArg(args, &arg_idx) orelse {
|
||||||
warn("Expected argument after {s}\n\n", .{arg});
|
warn("Expected argument after {s}\n\n", .{arg});
|
||||||
return usageAndErr(builder, false, stderr_stream);
|
return usageAndErr(builder, false, stderr_stream);
|
||||||
@@ -203,13 +203,15 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
|
@@ -215,15 +215,17 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
|
||||||
try out_stream.writeAll(
|
try out_stream.writeAll(
|
||||||
\\
|
\\
|
||||||
\\General Options:
|
\\General Options:
|
||||||
|
- \\ -h, --help Print this help and exit
|
||||||
|
- \\ --verbose Print commands before executing them
|
||||||
|
- \\ -p, --prefix [path] Override default install prefix
|
||||||
|
- \\ --lib-dir [path] Override default library directory path
|
||||||
|
- \\ --exe-dir [path] Override default executable directory path
|
||||||
|
- \\ --include-dir [path] Override default include directory path
|
||||||
+ \\ -p, --prefix [path] Override default install prefix
|
+ \\ -p, --prefix [path] Override default install prefix
|
||||||
+ \\ --prefix-lib-dir [path] Override default library directory path
|
+ \\ --prefix-lib-dir [path] Override default library directory path
|
||||||
+ \\ --prefix-exe-dir [path] Override default executable directory path
|
+ \\ --prefix-exe-dir [path] Override default executable directory path
|
||||||
+ \\ --prefix-include-dir [path] Override default include directory path
|
+ \\ --prefix-include-dir [path] Override default include directory path
|
||||||
+ \\
|
+ \\
|
||||||
+ \\ --search-prefix [path] Add a path to look for binaries, libraries, headers
|
\\ --sysroot [path] Set the system root directory (usually /)
|
||||||
|
\\ --search-prefix [path] Add a path to look for binaries, libraries, headers
|
||||||
|
\\ --libc [file] Provide a file which specifies libc paths
|
||||||
+ \\
|
+ \\
|
||||||
\\ -h, --help Print this help and exit
|
+ \\ -h, --help Print this help and exit
|
||||||
\\ --verbose Print commands before executing them
|
+ \\ --verbose Print commands before executing them
|
||||||
- \\ -p, --prefix [path] Override default install prefix
|
|
||||||
- \\ --lib-dir [path] Override default library directory path
|
|
||||||
- \\ --exe-dir [path] Override default executable directory path
|
|
||||||
- \\ --include-dir [path] Override default include directory path
|
|
||||||
- \\ --search-prefix [path] Add a path to look for binaries, libraries, headers
|
|
||||||
\\ --color [auto|off|on] Enable or disable colored error messages
|
\\ --color [auto|off|on] Enable or disable colored error messages
|
||||||
\\
|
\\
|
||||||
\\Project-Specific Options:
|
\\Project-Specific Options:
|
||||||
|
1011717
0003-LLVM-13-rebase.patch
Normal file
1011717
0003-LLVM-13-rebase.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,192 +0,0 @@
|
|||||||
From 7c6f80f74395e546382c0400ef6db50c1b3e6439 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrew Kelley <andrew@ziglang.org>
|
|
||||||
Date: Tue, 8 Jun 2021 12:48:48 -0700
|
|
||||||
Subject: [PATCH] native libc detection: respect spaces in CC env var
|
|
||||||
|
|
||||||
Zig has detection for when it is accidentally being called recursively
|
|
||||||
when trying to find the native libc installation. However it was not
|
|
||||||
working, resulting in a cryptic failure, because zig tried to execute
|
|
||||||
a command which had spaces in it rather than tokenizing it.
|
|
||||||
|
|
||||||
This improves the user experience of `zig cc` for systems that Zig
|
|
||||||
does not support cross-compiling for.
|
|
||||||
|
|
||||||
Closes #8960
|
|
||||||
|
|
||||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
|
||||||
---
|
|
||||||
src/libc_installation.zig | 99 +++++++++++++++++++++++++++------------
|
|
||||||
1 file changed, 70 insertions(+), 29 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/libc_installation.zig b/src/libc_installation.zig
|
|
||||||
index 2286b2c85..783f76b9b 100644
|
|
||||||
--- a/src/libc_installation.zig
|
|
||||||
+++ b/src/libc_installation.zig
|
|
||||||
@@ -237,26 +237,38 @@ pub const LibCInstallation = struct {
|
|
||||||
|
|
||||||
fn findNativeIncludeDirPosix(self: *LibCInstallation, args: FindNativeOptions) FindError!void {
|
|
||||||
const allocator = args.allocator;
|
|
||||||
+
|
|
||||||
+ // Detect infinite loops.
|
|
||||||
+ var env_map = try std.process.getEnvMap(allocator);
|
|
||||||
+ defer env_map.deinit();
|
|
||||||
+ const skip_cc_env_var = if (env_map.get(inf_loop_env_key)) |phase| blk: {
|
|
||||||
+ if (std.mem.eql(u8, phase, "1")) {
|
|
||||||
+ try env_map.put(inf_loop_env_key, "2");
|
|
||||||
+ break :blk true;
|
|
||||||
+ } else {
|
|
||||||
+ return error.ZigIsTheCCompiler;
|
|
||||||
+ }
|
|
||||||
+ } else blk: {
|
|
||||||
+ try env_map.put(inf_loop_env_key, "1");
|
|
||||||
+ break :blk false;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
const dev_null = if (is_windows) "nul" else "/dev/null";
|
|
||||||
- const cc_exe = std.os.getenvZ("CC") orelse default_cc_exe;
|
|
||||||
- const argv = [_][]const u8{
|
|
||||||
- cc_exe,
|
|
||||||
+
|
|
||||||
+ var argv = std.ArrayList([]const u8).init(allocator);
|
|
||||||
+ defer argv.deinit();
|
|
||||||
+
|
|
||||||
+ try appendCcExe(&argv, skip_cc_env_var);
|
|
||||||
+ try argv.appendSlice(&.{
|
|
||||||
"-E",
|
|
||||||
"-Wp,-v",
|
|
||||||
"-xc",
|
|
||||||
dev_null,
|
|
||||||
- };
|
|
||||||
- var env_map = try std.process.getEnvMap(allocator);
|
|
||||||
- defer env_map.deinit();
|
|
||||||
-
|
|
||||||
- // Detect infinite loops.
|
|
||||||
- const inf_loop_env_key = "ZIG_IS_DETECTING_LIBC_PATHS";
|
|
||||||
- if (env_map.get(inf_loop_env_key) != null) return error.ZigIsTheCCompiler;
|
|
||||||
- try env_map.put(inf_loop_env_key, "1");
|
|
||||||
+ });
|
|
||||||
|
|
||||||
const exec_res = std.ChildProcess.exec(.{
|
|
||||||
.allocator = allocator,
|
|
||||||
- .argv = &argv,
|
|
||||||
+ .argv = argv.items,
|
|
||||||
.max_output_bytes = 1024 * 1024,
|
|
||||||
.env_map = &env_map,
|
|
||||||
// Some C compilers, such as Clang, are known to rely on argv[0] to find the path
|
|
||||||
@@ -267,7 +279,7 @@ pub const LibCInstallation = struct {
|
|
||||||
}) catch |err| switch (err) {
|
|
||||||
error.OutOfMemory => return error.OutOfMemory,
|
|
||||||
else => {
|
|
||||||
- printVerboseInvocation(&argv, null, args.verbose, null);
|
|
||||||
+ printVerboseInvocation(argv.items, null, args.verbose, null);
|
|
||||||
return error.UnableToSpawnCCompiler;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -277,11 +289,11 @@ pub const LibCInstallation = struct {
|
|
||||||
}
|
|
||||||
switch (exec_res.term) {
|
|
||||||
.Exited => |code| if (code != 0) {
|
|
||||||
- printVerboseInvocation(&argv, null, args.verbose, exec_res.stderr);
|
|
||||||
+ printVerboseInvocation(argv.items, null, args.verbose, exec_res.stderr);
|
|
||||||
return error.CCompilerExitCode;
|
|
||||||
},
|
|
||||||
else => {
|
|
||||||
- printVerboseInvocation(&argv, null, args.verbose, exec_res.stderr);
|
|
||||||
+ printVerboseInvocation(argv.items, null, args.verbose, exec_res.stderr);
|
|
||||||
return error.CCompilerCrashed;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -540,8 +552,6 @@ pub const LibCInstallation = struct {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
-const default_cc_exe = if (is_windows) "cc.exe" else "cc";
|
|
||||||
-
|
|
||||||
pub const CCPrintFileNameOptions = struct {
|
|
||||||
allocator: *Allocator,
|
|
||||||
search_basename: []const u8,
|
|
||||||
@@ -553,22 +563,33 @@ pub const CCPrintFileNameOptions = struct {
|
|
||||||
fn ccPrintFileName(args: CCPrintFileNameOptions) ![:0]u8 {
|
|
||||||
const allocator = args.allocator;
|
|
||||||
|
|
||||||
- const cc_exe = std.os.getenvZ("CC") orelse default_cc_exe;
|
|
||||||
- const arg1 = try std.fmt.allocPrint(allocator, "-print-file-name={s}", .{args.search_basename});
|
|
||||||
- defer allocator.free(arg1);
|
|
||||||
- const argv = [_][]const u8{ cc_exe, arg1 };
|
|
||||||
-
|
|
||||||
+ // Detect infinite loops.
|
|
||||||
var env_map = try std.process.getEnvMap(allocator);
|
|
||||||
defer env_map.deinit();
|
|
||||||
+ const skip_cc_env_var = if (env_map.get(inf_loop_env_key)) |phase| blk: {
|
|
||||||
+ if (std.mem.eql(u8, phase, "1")) {
|
|
||||||
+ try env_map.put(inf_loop_env_key, "2");
|
|
||||||
+ break :blk true;
|
|
||||||
+ } else {
|
|
||||||
+ return error.ZigIsTheCCompiler;
|
|
||||||
+ }
|
|
||||||
+ } else blk: {
|
|
||||||
+ try env_map.put(inf_loop_env_key, "1");
|
|
||||||
+ break :blk false;
|
|
||||||
+ };
|
|
||||||
|
|
||||||
- // Detect infinite loops.
|
|
||||||
- const inf_loop_env_key = "ZIG_IS_DETECTING_LIBC_PATHS";
|
|
||||||
- if (env_map.get(inf_loop_env_key) != null) return error.ZigIsTheCCompiler;
|
|
||||||
- try env_map.put(inf_loop_env_key, "1");
|
|
||||||
+ var argv = std.ArrayList([]const u8).init(allocator);
|
|
||||||
+ defer argv.deinit();
|
|
||||||
+
|
|
||||||
+ const arg1 = try std.fmt.allocPrint(allocator, "-print-file-name={s}", .{args.search_basename});
|
|
||||||
+ defer allocator.free(arg1);
|
|
||||||
+
|
|
||||||
+ try appendCcExe(&argv, skip_cc_env_var);
|
|
||||||
+ try argv.append(arg1);
|
|
||||||
|
|
||||||
const exec_res = std.ChildProcess.exec(.{
|
|
||||||
.allocator = allocator,
|
|
||||||
- .argv = &argv,
|
|
||||||
+ .argv = argv.items,
|
|
||||||
.max_output_bytes = 1024 * 1024,
|
|
||||||
.env_map = &env_map,
|
|
||||||
// Some C compilers, such as Clang, are known to rely on argv[0] to find the path
|
|
||||||
@@ -586,11 +607,11 @@ fn ccPrintFileName(args: CCPrintFileNameOptions) ![:0]u8 {
|
|
||||||
}
|
|
||||||
switch (exec_res.term) {
|
|
||||||
.Exited => |code| if (code != 0) {
|
|
||||||
- printVerboseInvocation(&argv, args.search_basename, args.verbose, exec_res.stderr);
|
|
||||||
+ printVerboseInvocation(argv.items, args.search_basename, args.verbose, exec_res.stderr);
|
|
||||||
return error.CCompilerExitCode;
|
|
||||||
},
|
|
||||||
else => {
|
|
||||||
- printVerboseInvocation(&argv, args.search_basename, args.verbose, exec_res.stderr);
|
|
||||||
+ printVerboseInvocation(argv.items, args.search_basename, args.verbose, exec_res.stderr);
|
|
||||||
return error.CCompilerCrashed;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -659,3 +680,23 @@ fn fillSearch(search_buf: *[2]Search, sdk: *ZigWindowsSDK) []Search {
|
|
||||||
}
|
|
||||||
return search_buf[0..search_end];
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+const inf_loop_env_key = "ZIG_IS_DETECTING_LIBC_PATHS";
|
|
||||||
+
|
|
||||||
+fn appendCcExe(args: *std.ArrayList([]const u8), skip_cc_env_var: bool) !void {
|
|
||||||
+ const default_cc_exe = if (is_windows) "cc.exe" else "cc";
|
|
||||||
+ try args.ensureUnusedCapacity(1);
|
|
||||||
+ if (skip_cc_env_var) {
|
|
||||||
+ args.appendAssumeCapacity(default_cc_exe);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ const cc_env_var = std.os.getenvZ("CC") orelse {
|
|
||||||
+ args.appendAssumeCapacity(default_cc_exe);
|
|
||||||
+ return;
|
|
||||||
+ };
|
|
||||||
+ // Respect space-separated flags to the C compiler.
|
|
||||||
+ var it = std.mem.tokenize(cc_env_var, " ");
|
|
||||||
+ while (it.next()) |arg| {
|
|
||||||
+ try args.append(arg);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
84
zig.spec
84
zig.spec
@ -1,13 +1,29 @@
|
|||||||
# https://ziglang.org/download/0.8.0/release-notes.html#Support-Table
|
# https://ziglang.org/download/0.8.1/release-notes.html#Support-Table
|
||||||
# 32 bit builds currently run out of memory https://github.com/ziglang/zig/issues/6485
|
# 32 bit builds currently run out of memory https://github.com/ziglang/zig/issues/6485
|
||||||
%global zig_arches x86_64 aarch64 riscv64 %{mips64}
|
%global zig_arches x86_64 aarch64 riscv64 %{mips64}
|
||||||
|
|
||||||
|
%if %{fedora} >= 35
|
||||||
|
%bcond_without llvm13
|
||||||
|
|
||||||
# documentation and tests do not build due to an unsupported glibc version
|
# documentation and tests do not build due to an unsupported glibc version
|
||||||
%global rawhide 35
|
%bcond_with test
|
||||||
|
%bcond_with docs
|
||||||
|
|
||||||
|
%global llvm_version 13.0.0
|
||||||
|
%else
|
||||||
|
%bcond_with llvm13
|
||||||
|
|
||||||
|
%bcond_without test
|
||||||
|
%bcond_without docs
|
||||||
|
|
||||||
|
%global llvm_version 12.0.0
|
||||||
|
%endif
|
||||||
|
%bcond_without macro
|
||||||
|
|
||||||
|
|
||||||
Name: zig
|
Name: zig
|
||||||
Version: 0.8.0
|
Version: 0.8.1
|
||||||
Release: 8%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Programming language for maintaining robust, optimal, and reusable software
|
Summary: Programming language for maintaining robust, optimal, and reusable software
|
||||||
|
|
||||||
License: MIT and NCSA and LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL and ZPLv2.1
|
License: MIT and NCSA and LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL and ZPLv2.1
|
||||||
@ -18,9 +34,8 @@ Source1: macros.%{name}
|
|||||||
# https://github.com/ziglang/zig/pull/9020
|
# https://github.com/ziglang/zig/pull/9020
|
||||||
Patch0: 0001-specify-the-output-lib-exe-and-include-paths-with-fl.patch
|
Patch0: 0001-specify-the-output-lib-exe-and-include-paths-with-fl.patch
|
||||||
Patch1: 0002-zig-build-rename-lib-dir-include-dir-exe-dir.patch
|
Patch1: 0002-zig-build-rename-lib-dir-include-dir-exe-dir.patch
|
||||||
# https://github.com/ziglang/zig/commit/d128ec39df4c0a701523d7d7161df3808a6939d2
|
|
||||||
# prevents zig from recursively calling itself
|
Patch100: 0003-LLVM-13-rebase.patch
|
||||||
Patch2: 0003-native-libc-detection-respect-spaces-in-CC-env-var.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -30,30 +45,37 @@ BuildRequires: clang-devel
|
|||||||
BuildRequires: lld-devel
|
BuildRequires: lld-devel
|
||||||
# for man page generation
|
# for man page generation
|
||||||
BuildRequires: help2man
|
BuildRequires: help2man
|
||||||
# for the macro
|
|
||||||
|
%if %{with macro}
|
||||||
BuildRequires: sed
|
BuildRequires: sed
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with test}
|
||||||
# for testing
|
# for testing
|
||||||
#BuildRequires: elfutils-libelf-devel
|
BuildRequires: elfutils-libelf-devel
|
||||||
#BuildRequires: libstdc++-static
|
BuildRequires: libstdc++-static
|
||||||
|
%endif
|
||||||
|
|
||||||
Requires: %{name}-libs = %{version}
|
Requires: %{name}-libs = %{version}
|
||||||
|
|
||||||
# These packages are bundled as source
|
# These packages are bundled as source
|
||||||
|
|
||||||
# NCSA
|
# NCSA
|
||||||
Provides: bundled(compiler-rt) = 12.0.0
|
Provides: bundled(compiler-rt) = %{llvm_version}
|
||||||
# LGPLv2+, LGPLv2+ with exceptions, GPLv2+, GPLv2+ with exceptions, BSD, Inner-Net, ISC, Public Domain and GFDL
|
# LGPLv2+, LGPLv2+ with exceptions, GPLv2+, GPLv2+ with exceptions, BSD, Inner-Net, ISC, Public Domain and GFDL
|
||||||
Provides: bundled(glibc) = 2.33
|
Provides: bundled(glibc) = 2.33
|
||||||
# NCSA
|
# NCSA
|
||||||
Provides: bundled(libcxx) = 12.0.0
|
Provides: bundled(libcxx) = %{llvm_version}
|
||||||
# NCSA
|
# NCSA
|
||||||
Provides: bundled(libcxxabi) = 12.0.0
|
Provides: bundled(libcxxabi) = %{llvm_version}
|
||||||
# NCSA
|
# NCSA
|
||||||
Provides: bundled(libunwind) = 12.0.0
|
Provides: bundled(libunwind) = %{llvm_version}
|
||||||
# BSD, LGPG, ZPL
|
# BSD, LGPG, ZPL
|
||||||
Provides: bundled(mingw) = 8.0.0
|
Provides: bundled(mingw) = 9.0.0
|
||||||
# MIT
|
# MIT
|
||||||
Provides: bundled(musl) = 1.2.2
|
Provides: bundled(musl) = 1.2.2
|
||||||
|
# CC0, BSD, MIT, Apache2, Apache2 with exceptions
|
||||||
|
Provides: bundled(wasi-libc) = 82fc2c4f449e56319112f6f2583195c7f4e714b1
|
||||||
|
|
||||||
ExclusiveArch: %{zig_arches}
|
ExclusiveArch: %{zig_arches}
|
||||||
|
|
||||||
@ -69,6 +91,7 @@ BuildArch: noarch
|
|||||||
%description libs
|
%description libs
|
||||||
Standard Zig library
|
Standard Zig library
|
||||||
|
|
||||||
|
%if %{with docs}
|
||||||
%package doc
|
%package doc
|
||||||
Summary: Documentation for %{name}
|
Summary: Documentation for %{name}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -76,7 +99,9 @@ Requires: %{name} = %{version}
|
|||||||
|
|
||||||
%description doc
|
%description doc
|
||||||
Documentation for %{name}. For more information, visit %{url}
|
Documentation for %{name}. For more information, visit %{url}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with macro}
|
||||||
%package rpm-macros
|
%package rpm-macros
|
||||||
Summary: Common RPM macros for %{name}
|
Summary: Common RPM macros for %{name}
|
||||||
Requires: rpm
|
Requires: rpm
|
||||||
@ -84,9 +109,16 @@ BuildArch: noarch
|
|||||||
|
|
||||||
%description rpm-macros
|
%description rpm-macros
|
||||||
This package contains common RPM macros for %{name}.
|
This package contains common RPM macros for %{name}.
|
||||||
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%setup -q
|
||||||
|
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%if %{with llvm13}
|
||||||
|
%patch100 -p1
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -102,7 +134,7 @@ help2man --no-discard-stderr "%{__cmake_builddir}/zig" --version-option=version
|
|||||||
|
|
||||||
ln -s lib "%{__cmake_builddir}/"
|
ln -s lib "%{__cmake_builddir}/"
|
||||||
|
|
||||||
%if %{rawhide} > 0%{?fedora}
|
%if %{with docs}
|
||||||
%{__cmake_builddir}/zig build docs -Dversion-string="%{version}"
|
%{__cmake_builddir}/zig build docs -Dversion-string="%{version}"
|
||||||
%endif
|
%endif
|
||||||
mkdir -p zig-cache
|
mkdir -p zig-cache
|
||||||
@ -121,11 +153,10 @@ sed -i -e "s|@@ZIG_VERSION@@|%{version}|" %{buildroot}%{_rpmconfigdir}/macros.d
|
|||||||
|
|
||||||
%check
|
%check
|
||||||
|
|
||||||
%if %{rawhide} > 0%{?fedora}
|
%if %{with test}
|
||||||
# tests are affected by an LLVM regression
|
# Issues with tests stop them from completing successfully
|
||||||
# https://bugs.llvm.org/show_bug.cgi?id=49401
|
# https://github.com/ziglang/zig/issues/9738
|
||||||
# https://github.com/ziglang/zig/issues/8130
|
#%%{__cmake_builddir}/zig build test
|
||||||
# %%{__cmake_builddir}/zig build test
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
@ -136,14 +167,21 @@ sed -i -e "s|@@ZIG_VERSION@@|%{version}|" %{buildroot}%{_rpmconfigdir}/macros.d
|
|||||||
%files libs
|
%files libs
|
||||||
%{_prefix}/lib/%{name}
|
%{_prefix}/lib/%{name}
|
||||||
|
|
||||||
|
%if %{with docs}
|
||||||
%files doc
|
%files doc
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%doc zig-cache/langref.html
|
%doc zig-cache/langref.html
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with macro}
|
||||||
%files rpm-macros
|
%files rpm-macros
|
||||||
%{_rpmconfigdir}/macros.d/macros.%{name}
|
%{_rpmconfigdir}/macros.d/macros.%{name}
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Sep 12 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 0.8.1-1
|
||||||
|
- Update to Zig 0.8.1, add LLVM 13 patch
|
||||||
|
|
||||||
* Wed Aug 18 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 0.8.0-8
|
* Wed Aug 18 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 0.8.0-8
|
||||||
- Rebuilt for lld soname bump
|
- Rebuilt for lld soname bump
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user