diff --git a/lib/std/Target.zig b/lib/std/Target.zig index f50e1c3db00f368dac6f34b5239a347a5d7d168f..55b70bba3707c25dd043e8350118630dd2419492 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -2146,18 +2146,22 @@ pub fn zigTriple(target: *const Target, allocator: Allocator) Allocator.Error![] return Query.fromTarget(target).zigTriple(allocator); } +/// Deprecated; to be removed in 0.18.0. Use `std.zig.target.hurdTupleSimple` instead. pub fn hurdTupleSimple(allocator: Allocator, arch: Cpu.Arch, abi: Abi) ![]u8 { return std.fmt.allocPrint(allocator, "{s}-{s}", .{ @tagName(arch), @tagName(abi) }); } +/// Deprecated; to be removed in 0.18.0. Use `std.zig.target.hurdTuple` instead. pub fn hurdTuple(target: *const Target, allocator: Allocator) ![]u8 { return hurdTupleSimple(allocator, target.cpu.arch, target.abi); } +/// Deprecated; to be removed in 0.18.0. Use `std.zig.target.linuxTripleSimple` instead. pub fn linuxTripleSimple(allocator: Allocator, arch: Cpu.Arch, os_tag: Os.Tag, abi: Abi) ![]u8 { return std.fmt.allocPrint(allocator, "{s}-{s}-{s}", .{ @tagName(arch), @tagName(os_tag), @tagName(abi) }); } +/// Deprecated; to be removed in 0.18.0. Use `std.zig.target.linuxTriple` instead. pub fn linuxTriple(target: *const Target, allocator: Allocator) ![]u8 { return linuxTripleSimple(allocator, target.cpu.arch, target.os.tag, target.abi); } diff --git a/lib/std/zig/system/NativePaths.zig b/lib/std/zig/system/NativePaths.zig index ead8eb2f70ca170cc077c3630d2a2c5f7584e198..6a5b2db1f7ab396da91bda2bfb4077a9cca8218c 100644 --- a/lib/std/zig/system/NativePaths.zig +++ b/lib/std/zig/system/NativePaths.zig @@ -149,7 +149,7 @@ pub fn detect( } if (builtin.os.tag != .windows and builtin.os.tag != .wasi) { - const triple = try native_target.linuxTriple(arena); + const triple = try std.zig.target.linuxTriple(arena, native_target); const qual = native_target.ptrBitWidth(); diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig index 6e7eb636d3bc30cd40e402d3490ef4a5f438e219..e70832bd47f5f2180bda7c41d828ddea8b1d477c 100644 --- a/lib/std/zig/target.zig +++ b/lib/std/zig/target.zig @@ -143,6 +143,31 @@ pub fn canBuildLibC(target: *const std.Target) bool { return false; } +pub fn hurdTupleSimple( + allocator: Allocator, + arch: std.Target.Cpu.Arch, + abi: std.Target.Abi, +) ![]u8 { + return std.fmt.allocPrint(allocator, "{s}-{s}", .{ @tagName(arch), @tagName(abi) }); +} + +pub fn hurdTuple(allocator: Allocator, target: *const std.Target) ![]u8 { + return hurdTupleSimple(allocator, target.cpu.arch, target.abi); +} + +pub fn linuxTripleSimple( + allocator: Allocator, + arch: std.Target.Cpu.Arch, + os_tag: std.Target.Os.Tag, + abi: std.Target.Abi, +) ![]u8 { + return std.fmt.allocPrint(allocator, "{s}-{s}-{s}", .{ @tagName(arch), @tagName(os_tag), @tagName(abi) }); +} + +pub fn linuxTriple(allocator: Allocator, target: *const std.Target) ![]u8 { + return linuxTripleSimple(allocator, target.cpu.arch, target.os.tag, target.abi); +} + /// Returns the subdirectory triple to be used to find the correct glibc for the given `arch`, `os`, /// and `abi` in an installation directory created by glibc's `build-many-glibcs.py` script. /// @@ -162,8 +187,8 @@ pub fn glibcRuntimeTriple( } return switch (os) { - .hurd => std.Target.hurdTupleSimple(allocator, arch, abi), - .linux => std.Target.linuxTripleSimple(allocator, arch, os, abi), + .hurd => hurdTupleSimple(allocator, arch, abi), + .linux => linuxTripleSimple(allocator, arch, os, abi), else => unreachable, }; } @@ -179,7 +204,7 @@ pub fn muslRuntimeTriple( ) Allocator.Error![]const u8 { assert(abi.isMusl()); - return std.Target.linuxTripleSimple(allocator, arch, .linux, abi); + return linuxTripleSimple(allocator, arch, .linux, abi); } pub fn osArchName(target: *const std.Target) [:0]const u8 {