Skip to content

Commit 9293e04

Browse files
committed
process_headers: Use glibcRuntimeTriple() and muslArchName() from std.zig.target.
1 parent 3fb0ab5 commit 9293e04

File tree

1 file changed

+55
-52
lines changed

1 file changed

+55
-52
lines changed

tools/process_headers.zig

Lines changed: 55 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -18,62 +18,61 @@ const assert = std.debug.assert;
1818
const Blake3 = std.crypto.hash.Blake3;
1919

2020
const LibCTarget = struct {
21-
name: []const u8,
2221
arch: Arch,
2322
abi: Abi,
2423
};
2524

2625
const glibc_targets = [_]LibCTarget{
27-
.{ .name = "arc-linux-gnu", .arch = .arc, .abi = .gnu },
28-
.{ .name = "arm-linux-gnueabi", .arch = .arm, .abi = .gnueabi },
29-
.{ .name = "arm-linux-gnueabihf", .arch = .arm, .abi = .gnueabihf },
30-
.{ .name = "armeb-linux-gnueabi", .arch = .armeb, .abi = .gnueabi },
31-
.{ .name = "armeb-linux-gnueabihf", .arch = .armeb, .abi = .gnueabihf },
32-
.{ .name = "aarch64-linux-gnu", .arch = .aarch64, .abi = .gnu },
33-
.{ .name = "aarch64_be-linux-gnu", .arch = .aarch64_be, .abi = .gnu },
34-
.{ .name = "csky-linux-gnuabiv2-soft", .arch = .csky, .abi = .gnueabi },
35-
.{ .name = "csky-linux-gnuabiv2", .arch = .csky, .abi = .gnueabihf },
36-
.{ .name = "loongarch64-linux-gnu-lp64d", .arch = .loongarch64, .abi = .gnu },
37-
.{ .name = "loongarch64-linux-gnu-lp64s", .arch = .loongarch64, .abi = .gnusf },
38-
.{ .name = "m68k-linux-gnu", .arch = .m68k, .abi = .gnu },
39-
.{ .name = "mips-linux-gnu", .arch = .mips, .abi = .gnueabihf },
40-
.{ .name = "mips-linux-gnu-soft", .arch = .mips, .abi = .gnueabi },
41-
.{ .name = "mipsel-linux-gnu-soft", .arch = .mipsel, .abi = .gnueabi },
42-
.{ .name = "mipsel-linux-gnu", .arch = .mipsel, .abi = .gnueabihf },
43-
.{ .name = "mips64-linux-gnu-n64", .arch = .mips64, .abi = .gnuabi64 },
44-
.{ .name = "mips64-linux-gnu-n32", .arch = .mips64, .abi = .gnuabin32 },
45-
.{ .name = "mips64el-linux-gnu-n64", .arch = .mips64el, .abi = .gnuabi64 },
46-
.{ .name = "mips64el-linux-gnu-n32", .arch = .mips64el, .abi = .gnuabin32 },
47-
.{ .name = "powerpc-linux-gnu-soft", .arch = .powerpc, .abi = .gnueabi },
48-
.{ .name = "powerpc-linux-gnu", .arch = .powerpc, .abi = .gnueabihf },
49-
.{ .name = "powerpc64-linux-gnu", .arch = .powerpc64, .abi = .gnu },
50-
.{ .name = "powerpc64le-linux-gnu", .arch = .powerpc64le, .abi = .gnu },
51-
.{ .name = "riscv32-linux-gnu-rv32imafdc-ilp32d", .arch = .riscv32, .abi = .gnu },
52-
.{ .name = "riscv64-linux-gnu-rv64imafdc-lp64d", .arch = .riscv64, .abi = .gnu },
53-
.{ .name = "s390x-linux-gnu", .arch = .s390x, .abi = .gnu },
54-
.{ .name = "sparcv9-linux-gnu", .arch = .sparc, .abi = .gnu },
55-
.{ .name = "sparc64-linux-gnu", .arch = .sparc64, .abi = .gnu },
56-
.{ .name = "i686-linux-gnu", .arch = .x86, .abi = .gnu },
57-
.{ .name = "x86_64-linux-gnu", .arch = .x86_64, .abi = .gnu },
58-
.{ .name = "x86_64-linux-gnu-x32", .arch = .x86_64, .abi = .gnux32 },
26+
.{ .arch = .arc, .abi = .gnu },
27+
.{ .arch = .arm, .abi = .gnueabi },
28+
.{ .arch = .arm, .abi = .gnueabihf },
29+
.{ .arch = .armeb, .abi = .gnueabi },
30+
.{ .arch = .armeb, .abi = .gnueabihf },
31+
.{ .arch = .aarch64, .abi = .gnu },
32+
.{ .arch = .aarch64_be, .abi = .gnu },
33+
.{ .arch = .csky, .abi = .gnueabi },
34+
.{ .arch = .csky, .abi = .gnueabihf },
35+
.{ .arch = .loongarch64, .abi = .gnu },
36+
.{ .arch = .loongarch64, .abi = .gnusf },
37+
.{ .arch = .m68k, .abi = .gnu },
38+
.{ .arch = .mips, .abi = .gnueabi },
39+
.{ .arch = .mips, .abi = .gnueabihf },
40+
.{ .arch = .mipsel, .abi = .gnueabi },
41+
.{ .arch = .mipsel, .abi = .gnueabihf },
42+
.{ .arch = .mips64, .abi = .gnuabi64 },
43+
.{ .arch = .mips64, .abi = .gnuabin32 },
44+
.{ .arch = .mips64el, .abi = .gnuabi64 },
45+
.{ .arch = .mips64el, .abi = .gnuabin32 },
46+
.{ .arch = .powerpc, .abi = .gnueabi },
47+
.{ .arch = .powerpc, .abi = .gnueabihf },
48+
.{ .arch = .powerpc64, .abi = .gnu },
49+
.{ .arch = .powerpc64le, .abi = .gnu },
50+
.{ .arch = .riscv32, .abi = .gnu },
51+
.{ .arch = .riscv64, .abi = .gnu },
52+
.{ .arch = .s390x, .abi = .gnu },
53+
.{ .arch = .sparc, .abi = .gnu },
54+
.{ .arch = .sparc64, .abi = .gnu },
55+
.{ .arch = .x86, .abi = .gnu },
56+
.{ .arch = .x86_64, .abi = .gnu },
57+
.{ .arch = .x86_64, .abi = .gnux32 },
5958
};
6059

6160
const musl_targets = [_]LibCTarget{
62-
.{ .name = "arm", .arch = .arm, .abi = .musl },
63-
.{ .name = "aarch64", .arch = .aarch64, .abi = .musl },
64-
.{ .name = "loongarch64", .arch = .loongarch64, .abi = .musl },
65-
.{ .name = "m68k", .arch = .m68k, .abi = .musl },
66-
.{ .name = "mips", .arch = .mips, .abi = .musl },
67-
.{ .name = "mips64", .arch = .mips64, .abi = .musl },
68-
.{ .name = "mipsn32", .arch = .mips64, .abi = .muslabin32 },
69-
.{ .name = "powerpc", .arch = .powerpc, .abi = .musl },
70-
.{ .name = "powerpc64", .arch = .powerpc64, .abi = .musl },
71-
.{ .name = "riscv32", .arch = .riscv32, .abi = .musl },
72-
.{ .name = "riscv64", .arch = .riscv64, .abi = .musl },
73-
.{ .name = "s390x", .arch = .s390x, .abi = .musl },
74-
.{ .name = "i386", .arch = .x86, .abi = .musl },
75-
.{ .name = "x86_64", .arch = .x86_64, .abi = .musl },
76-
.{ .name = "x32", .arch = .x86_64, .abi = .muslx32 },
61+
.{ .arch = .arm, .abi = .musl },
62+
.{ .arch = .aarch64, .abi = .musl },
63+
.{ .arch = .loongarch64, .abi = .musl },
64+
.{ .arch = .m68k, .abi = .musl },
65+
.{ .arch = .mips, .abi = .musl },
66+
.{ .arch = .mips64, .abi = .musl },
67+
.{ .arch = .mips64, .abi = .muslabin32 },
68+
.{ .arch = .powerpc, .abi = .musl },
69+
.{ .arch = .powerpc64, .abi = .musl },
70+
.{ .arch = .riscv32, .abi = .musl },
71+
.{ .arch = .riscv64, .abi = .musl },
72+
.{ .arch = .s390x, .abi = .musl },
73+
.{ .arch = .x86, .abi = .musl },
74+
.{ .arch = .x86_64, .abi = .musl },
75+
.{ .arch = .x86_64, .abi = .muslx32 },
7776
};
7877

7978
const DestTarget = struct {
@@ -174,6 +173,10 @@ pub fn main() !void {
174173
var hasher = Blake3.init(.{});
175174

176175
for (libc_targets) |libc_target| {
176+
const libc_dir = switch (vendor) {
177+
.glibc => try std.zig.target.glibcRuntimeTriple(allocator, libc_target.arch, .linux, libc_target.abi),
178+
.musl => std.zig.target.muslArchName(libc_target.arch, libc_target.abi),
179+
};
177180
const dest_target = DestTarget{
178181
.arch = libc_target.arch,
179182
.os = .linux,
@@ -182,8 +185,8 @@ pub fn main() !void {
182185

183186
search: for (search_paths.items) |search_path| {
184187
const sub_path = switch (vendor) {
185-
.glibc => &[_][]const u8{ search_path, libc_target.name, "usr", "include" },
186-
.musl => &[_][]const u8{ search_path, libc_target.name, "usr", "local", "musl", "include" },
188+
.glibc => &[_][]const u8{ search_path, libc_dir, "usr", "include" },
189+
.musl => &[_][]const u8{ search_path, libc_dir, "usr", "local", "musl", "include" },
187190
};
188191
const target_include_dir = try std.fs.path.join(allocator, sub_path);
189192
var dir_stack = std.ArrayList([]const u8).init(allocator);
@@ -219,7 +222,7 @@ pub fn main() !void {
219222
max_bytes_saved += raw_bytes.len;
220223
gop.value_ptr.hit_count += 1;
221224
std.debug.print("duplicate: {s} {s} ({:2})\n", .{
222-
libc_target.name,
225+
libc_dir,
223226
rel_path,
224227
std.fmt.fmtIntSizeDec(raw_bytes.len),
225228
});
@@ -246,7 +249,7 @@ pub fn main() !void {
246249
}
247250
break;
248251
} else {
249-
std.debug.print("warning: libc target not found: {s}\n", .{libc_target.name});
252+
std.debug.print("warning: libc target not found: {s}\n", .{libc_dir});
250253
}
251254
}
252255
std.debug.print("summary: {:2} could be reduced to {:2}\n", .{

0 commit comments

Comments
 (0)