std.Target: Move osArchName() and Cpu.Arch.archName() to std.zig.target.

These deal with how Zig stores OS headers in `lib/libc/include` and so don't
really belong in std.Target.
This commit is contained in:
Alex Rønne Petersen 2024-12-08 20:02:43 +01:00
parent ce8c61b0fc
commit e62352611f
No known key found for this signature in database
4 changed files with 19 additions and 23 deletions

View file

@ -218,23 +218,6 @@ pub const Os = struct {
.windows => .windows, .windows => .windows,
}; };
} }
pub fn archName(tag: Tag, arch: Cpu.Arch) [:0]const u8 {
return switch (tag) {
.linux => switch (arch) {
.arm, .armeb, .thumb, .thumbeb => "arm",
.aarch64, .aarch64_be => "aarch64",
.loongarch32, .loongarch64 => "loongarch",
.mips, .mipsel, .mips64, .mips64el => "mips",
.powerpc, .powerpcle, .powerpc64, .powerpc64le => "powerpc",
.riscv32, .riscv64 => "riscv",
.sparc, .sparc64 => "sparc",
.x86, .x86_64 => "x86",
else => @tagName(arch),
},
else => @tagName(arch),
};
}
}; };
/// Based on NTDDI version constants from /// Based on NTDDI version constants from
@ -3357,10 +3340,6 @@ pub fn cCallingConvention(target: Target) ?std.builtin.CallingConvention {
}; };
} }
pub fn osArchName(target: std.Target) [:0]const u8 {
return target.os.tag.archName(target.cpu.arch);
}
const Target = @This(); const Target = @This();
const std = @import("std.zig"); const std = @import("std.zig");
const builtin = @import("builtin"); const builtin = @import("builtin");

View file

@ -187,7 +187,7 @@ pub fn detectFromBuilding(
"{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "generic-{s}", "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "generic-{s}",
.{ zig_lib_dir, generic_name }, .{ zig_lib_dir, generic_name },
); );
const generic_arch_name = target.osArchName(); const generic_arch_name = std.zig.target.osArchName(target);
const arch_os_include_dir = try std.fmt.allocPrint( const arch_os_include_dir = try std.fmt.allocPrint(
arena, arena,
"{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-any", "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-any",

View file

@ -129,6 +129,23 @@ pub fn glibcRuntimeTriple(
}; };
} }
pub fn osArchName(target: std.Target) [:0]const u8 {
return switch (target.os.tag) {
.linux => switch (target.cpu.arch) {
.arm, .armeb, .thumb, .thumbeb => "arm",
.aarch64, .aarch64_be => "aarch64",
.loongarch32, .loongarch64 => "loongarch",
.mips, .mipsel, .mips64, .mips64el => "mips",
.powerpc, .powerpcle, .powerpc64, .powerpc64le => "powerpc",
.riscv32, .riscv64 => "riscv",
.sparc, .sparc64 => "sparc",
.x86, .x86_64 => "x86",
else => @tagName(target.cpu.arch),
},
else => @tagName(target.cpu.arch),
};
}
pub fn muslArchName(arch: std.Target.Cpu.Arch, abi: std.Target.Abi) [:0]const u8 { pub fn muslArchName(arch: std.Target.Cpu.Arch, abi: std.Target.Abi) [:0]const u8 {
return switch (abi) { return switch (abi) {
.muslabin32 => "mipsn32", .muslabin32 => "mipsn32",

View file

@ -469,7 +469,7 @@ fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([
try args.append("-I"); try args.append("-I");
try args.append(try lib_path(comp, arena, lib_libc ++ "include" ++ s ++ "generic-glibc")); try args.append(try lib_path(comp, arena, lib_libc ++ "include" ++ s ++ "generic-glibc"));
const arch_name = target.osArchName(); const arch_name = std.zig.target.osArchName(target);
try args.append("-I"); try args.append("-I");
try args.append(try std.fmt.allocPrint(arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-linux-any", .{ try args.append(try std.fmt.allocPrint(arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-linux-any", .{
comp.zig_lib_directory.path.?, arch_name, comp.zig_lib_directory.path.?, arch_name,