From 60bf1a6543f37ede832d7aa94521f5506a932fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 8 Aug 2024 23:24:53 +0200 Subject: [PATCH 1/9] std.Target: Sort Arch tags in a hopefully more sensible way. --- lib/std/Target.zig | 48 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 759c1156c38b9f341b7aa24bd7f8b9ccec125f71..f04c636628d6032769579873038d34685dd3e939 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -1001,17 +1001,22 @@ pub const Cpu = struct { }; pub const Arch = enum { + amdgcn, + arc, arm, armeb, + thumb, + thumbeb, aarch64, aarch64_be, - arc, avr, bpfel, bpfeb, csky, dxil, hexagon, + kalimba, + lanai, loongarch32, loongarch64, m68k, @@ -1020,51 +1025,46 @@ pub const Cpu = struct { mips64, mips64el, msp430, + nvptx, + nvptx64, powerpc, powerpcle, powerpc64, powerpc64le, - amdgcn, riscv32, riscv64, + s390x, sparc, sparc64, - s390x, - thumb, - thumbeb, - x86, - x86_64, - xcore, - xtensa, - nvptx, - nvptx64, spirv, spirv32, spirv64, - kalimba, - lanai, + spu_2, + ve, wasm32, wasm64, - ve, - spu_2, + x86, + x86_64, + xcore, + xtensa, // LLVM tags deliberately omitted: // - aarch64_32 - // - r600 - // - sparcel - // - tce - // - tcele - // - le32 - // - le64 // - amdil // - amdil64 + // - le32 + // - le64 + // - r600 // - hsail // - hsail64 - // - spir - // - spir64 - // - shave // - renderscript32 // - renderscript64 + // - shave + // - sparcel + // - spir + // - spir64 + // - tce + // - tcele pub inline fn isX86(arch: Arch) bool { return switch (arch) { -- 2.54.0 From 7f7008b5b2cb5d7d41295f04c28d78365063f7c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 8 Aug 2024 23:04:38 +0200 Subject: [PATCH 2/9] std.Target: Sort Os tags in a hopefully more sensible way. --- lib/std/Target.zig | 75 ++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index f04c636628d6032769579873038d34685dd3e939..a99edaae324022a9de85d45c6d0852fad61b8412 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -17,53 +17,62 @@ pub const Os = struct { pub const Tag = enum { freestanding, - dragonfly, - freebsd, + other, + + contiki, + elfiamcu, fuchsia, - ios, + hermit, + + aix, + haiku, + hurd, linux, - ps3, - macos, + liteos, + minix, + plan9, + rtems, + serenity, + zos, + + dragonfly, + freebsd, netbsd, openbsd, + + driverkit, + ios, + macos, + tvos, + visionos, + watchos, + + illumos, solaris, - uefi, + windows, - zos, - haiku, - minix, - rtems, - aix, - cuda, - nvcl, - amdhsa, + uefi, + + ps3, ps4, ps5, - elfiamcu, - tvos, - watchos, - driverkit, - visionos, - mesa3d, - contiki, - amdpal, - hermit, - hurd, - wasi, + emscripten, - shadermodel, - liteos, - serenity, - opencl, + wasi, + + amdhsa, + amdpal, + cuda, glsl450, + mesa3d, + nvcl, + opencl, + shadermodel, vulkan, - plan9, - illumos, - other, // LLVM tags deliberately omitted: - // - kfreebsd // - darwin + // - kfreebsd // - nacl pub inline fn isDarwin(tag: Tag) bool { -- 2.54.0 From 0bb9db399813c01cf022ce1a2766a497796327ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 8 Aug 2024 23:14:00 +0200 Subject: [PATCH 3/9] std.Target: Add comments explaining the baseline CPUs for hexagon/s390x. --- lib/std/Target.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index a99edaae324022a9de85d45c6d0852fad61b8412..46aac50d71d641544c5072e5609ba01c53f9b3af 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -1548,12 +1548,12 @@ pub const Cpu = struct { pub fn baseline(arch: Arch) *const Model { return switch (arch) { .arm, .armeb, .thumb, .thumbeb => &arm.cpu.baseline, - .hexagon => &hexagon.cpu.hexagonv60, + .hexagon => &hexagon.cpu.hexagonv60, // gcc/clang do not have a generic hexagon model. .riscv32 => &riscv.cpu.baseline_rv32, .riscv64 => &riscv.cpu.baseline_rv64, .x86 => &x86.cpu.pentium4, .nvptx, .nvptx64 => &nvptx.cpu.sm_20, - .s390x => &s390x.cpu.arch8, + .s390x => &s390x.cpu.arch8, // gcc/clang do not have a generic s390x model. .sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8. .loongarch64 => &loongarch.cpu.loongarch64, -- 2.54.0 From 15a3ee19795dd9807107c2a45fa328b00e9edd10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 8 Aug 2024 23:15:04 +0200 Subject: [PATCH 4/9] std.Target: Remove supportsNewStackCall(). This is literally just isWasm() and has no uses in the repository. --- lib/std/Target.zig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 46aac50d71d641544c5072e5609ba01c53f9b3af..13b269bfcc92bceaa49d974acad377d453a5a2c8 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -1633,10 +1633,6 @@ pub inline fn isGnuLibC(target: Target) bool { return target.os.tag.isGnuLibC(target.abi); } -pub inline fn supportsNewStackCall(target: Target) bool { - return !target.cpu.arch.isWasm(); -} - pub inline fn isSpirV(target: Target) bool { return target.cpu.arch.isSpirV(); } -- 2.54.0 From eb4539a27d72defc2f90a0b164a5d7f27df79ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 10 Aug 2024 15:25:41 +0200 Subject: [PATCH 5/9] std.Target: Rename glsl450 Arch tag to opengl. Versions can simply use the normal version range mechanism, or alternatively an Abi tag if that makes more sense. For now, we only care about 4.5 anyway. --- lib/compiler/aro/aro/target.zig | 2 +- lib/std/Target.zig | 16 ++++++++-------- src/codegen/llvm.zig | 4 ++-- src/link/SpirV.zig | 8 ++++---- test/llvm_targets.zig | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/compiler/aro/aro/target.zig b/lib/compiler/aro/aro/target.zig index a8767233024dd1465c3ce4ddd350ca21c6dab40b..95be478230f28f7136391ce92c81bcfb1a8ddddd 100644 --- a/lib/compiler/aro/aro/target.zig +++ b/lib/compiler/aro/aro/target.zig @@ -652,7 +652,7 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { .shadermodel => "shadermodel", .liteos => "liteos", .opencl, - .glsl450, + .opengl, .vulkan, .plan9, .other, diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 13b269bfcc92bceaa49d974acad377d453a5a2c8..cfbb2f25dce92accac98bde8a999c4846883e291 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -63,10 +63,10 @@ pub const Os = struct { amdhsa, amdpal, cuda, - glsl450, mesa3d, nvcl, opencl, + opengl, shadermodel, vulkan, @@ -171,7 +171,7 @@ pub const Os = struct { .liteos, .uefi, .opencl, // TODO: OpenCL versions - .glsl450, // TODO: GLSL versions + .opengl, // TODO: GLSL versions .vulkan, .plan9, .illumos, @@ -402,7 +402,7 @@ pub const Os = struct { .liteos, .uefi, .opencl, // TODO: OpenCL versions - .glsl450, // TODO: GLSL versions + .opengl, // TODO: GLSL versions .vulkan, .plan9, .illumos, @@ -601,7 +601,7 @@ pub const Os = struct { .liteos, .uefi, .opencl, - .glsl450, + .opengl, .vulkan, .plan9, .other, @@ -715,7 +715,7 @@ pub const Abi = enum { => .musl, .liteos => .ohos, .opencl, // TODO: SPIR-V ABIs with Linkage capability - .glsl450, + .opengl, .vulkan, .plan9, // TODO specify abi .macos, @@ -1661,7 +1661,7 @@ pub inline fn hasDynamicLinker(target: Target) bool { .windows, .emscripten, .opencl, - .glsl450, + .opengl, .vulkan, .plan9, .other, @@ -1829,7 +1829,7 @@ pub const DynamicLinker = struct { .emscripten, .wasi, .opencl, - .glsl450, + .opengl, .vulkan, .other, .plan9, @@ -2346,7 +2346,7 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 { .contiki, .hermit, .hurd, - .glsl450, + .opengl, .driverkit, .shadermodel, .liteos, diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index b900c15d8203ebd18538b9b51074f3eef32dd7e3..959d5fa65887517f9e6caf207129cd07b4fc7930 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -140,7 +140,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { .serenity => "serenity", .vulkan => "vulkan", - .glsl450, + .opengl, .plan9, .minix, .contiki, @@ -210,7 +210,7 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { .freestanding, .other, .opencl, - .glsl450, + .opengl, .plan9, .minix, .contiki, diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig index e97c80c3feb6662aefc03a0d92adc8a4113f5fff..57e69ed860e217b96d3b837b8744a7e8968ee5a2 100644 --- a/src/link/SpirV.zig +++ b/src/link/SpirV.zig @@ -85,7 +85,7 @@ pub fn createEmpty( } switch (target.os.tag) { - .opencl, .glsl450, .vulkan => {}, + .opencl, .opengl, .vulkan => {}, else => unreachable, // Caught by Compilation.Config.resolve. } @@ -290,7 +290,7 @@ fn writeCapabilities(spv: *SpvModule, target: std.Target) !void { // TODO: Integrate with a hypothetical feature system const caps: []const spec.Capability = switch (target.os.tag) { .opencl => &.{ .Kernel, .Addresses, .Int8, .Int16, .Int64, .Float64, .Float16, .Vector16, .GenericPointer }, - .glsl450 => &.{.Shader}, + .opengl => &.{.Shader}, .vulkan => &.{ .Shader, .VariablePointersStorageBuffer, .Int8, .Int16, .Int64, .Float64, .Float16 }, else => unreachable, // TODO }; @@ -311,13 +311,13 @@ fn writeMemoryModel(spv: *SpvModule, target: std.Target) !void { .spirv64 => spec.AddressingModel.Physical64, else => unreachable, // TODO }, - .glsl450, .vulkan => spec.AddressingModel.Logical, + .opengl, .vulkan => spec.AddressingModel.Logical, else => unreachable, // TODO }; const memory_model: spec.MemoryModel = switch (target.os.tag) { .opencl => .OpenCL, - .glsl450 => .GLSL450, + .opengl => .GLSL450, .vulkan => .GLSL450, else => unreachable, }; diff --git a/test/llvm_targets.zig b/test/llvm_targets.zig index 71dc9e30a387597a2b2d85a9c2eb22fc7cc84840..76b9e668fa8c8fea0a114e824ba843b8c6a0b720 100644 --- a/test/llvm_targets.zig +++ b/test/llvm_targets.zig @@ -90,10 +90,10 @@ const targets = [_]std.Target.Query{ .{ .cpu_arch = .sparc64, .os_tag = .freestanding, .abi = .none }, .{ .cpu_arch = .sparc64, .os_tag = .linux, .abi = .gnu }, //.{ .cpu_arch = .spirv32, .os_tag = .opencl, .abi = .none }, - //.{ .cpu_arch = .spirv32, .os_tag = .glsl450, .abi = .none }, + //.{ .cpu_arch = .spirv32, .os_tag = .opengl, .abi = .none }, //.{ .cpu_arch = .spirv32, .os_tag = .vulkan, .abi = .none }, //.{ .cpu_arch = .spirv64, .os_tag = .opencl, .abi = .none }, - //.{ .cpu_arch = .spirv64, .os_tag = .glsl450, .abi = .none }, + //.{ .cpu_arch = .spirv64, .os_tag = .opengl, .abi = .none }, //.{ .cpu_arch = .spirv64, .os_tag = .vulkan, .abi = .none }, .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .none }, .{ .cpu_arch = .thumbeb, .os_tag = .freestanding, .abi = .none }, -- 2.54.0 From 4d4a023042f7a60fe0cac618df1d7e98cbb322a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 10 Aug 2024 15:41:43 +0200 Subject: [PATCH 6/9] std.Target: Remove no longer relevant TODO about SPIR-V ABIs. --- lib/std/Target.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index cfbb2f25dce92accac98bde8a999c4846883e291..9c87f4c425a084146d8d65fa5de1f57b5121620a 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -714,7 +714,7 @@ pub const Abi = enum { .emscripten, => .musl, .liteos => .ohos, - .opencl, // TODO: SPIR-V ABIs with Linkage capability + .opencl, .opengl, .vulkan, .plan9, // TODO specify abi -- 2.54.0 From e211dce6fc7fecfea69acf548e751677879088b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 10 Aug 2024 17:38:49 +0200 Subject: [PATCH 7/9] std.Target: Remove minix OS tag. It has not seen development in 6 years. RIP. * https://github.com/Stichting-MINIX-Research-Foundation/minix/commits/master * https://groups.google.com/g/minix3/c/nUG1NwxXXkg --- lib/compiler/aro/aro/target.zig | 1 - lib/std/Target.zig | 7 ------- lib/std/c.zig | 4 ++-- src/codegen/llvm.zig | 2 -- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/compiler/aro/aro/target.zig b/lib/compiler/aro/aro/target.zig index 95be478230f28f7136391ce92c81bcfb1a8ddddd..56acb3583530d5f397a79e3795aa9ea60891b4d0 100644 --- a/lib/compiler/aro/aro/target.zig +++ b/lib/compiler/aro/aro/target.zig @@ -626,7 +626,6 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { .windows => "windows", .zos => "zos", .haiku => "haiku", - .minix => "minix", .rtems => "rtems", .aix => "aix", .cuda => "cuda", diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 9c87f4c425a084146d8d65fa5de1f57b5121620a..f5bba9f2ee7d540f05eb466353d6d71aca366535 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -29,7 +29,6 @@ pub const Os = struct { hurd, linux, liteos, - minix, plan9, rtems, serenity, @@ -151,7 +150,6 @@ pub const Os = struct { .ps3, .zos, .haiku, - .minix, .rtems, .aix, .cuda, @@ -382,7 +380,6 @@ pub const Os = struct { .ps3, .zos, .haiku, - .minix, .rtems, .aix, .cuda, @@ -580,7 +577,6 @@ pub const Os = struct { .fuchsia, .ps3, .zos, - .minix, .rtems, .aix, .cuda, @@ -685,7 +681,6 @@ pub const Abi = enum { .dragonfly, .ps3, .zos, - .minix, .rtems, .aix, .cuda, @@ -1843,7 +1838,6 @@ pub const DynamicLinker = struct { .fuchsia, .ps3, .zos, - .minix, .rtems, .aix, .cuda, @@ -2144,7 +2138,6 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 { .illumos, .haiku, .fuchsia, - .minix, .serenity, => switch (target.cpu.arch) { .msp430 => switch (c_type) { diff --git a/lib/std/c.zig b/lib/std/c.zig index e006420f5ce77783c1ac165f9b4feb3702f34e95..92d36dd13586c955cd7190ba80ba4751666b041d 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -6619,7 +6619,7 @@ pub const Stat = switch (native_os) { }; pub const pthread_mutex_t = switch (native_os) { - .linux, .minix => extern struct { + .linux => extern struct { data: [data_len]u8 align(@alignOf(usize)) = [_]u8{0} ** data_len, const data_len = switch (native_abi) { @@ -6716,7 +6716,7 @@ pub const pthread_cond_t = switch (native_os) { magic: u16 = 0x4356, data: u64 = 0, }, - .fuchsia, .minix, .emscripten => extern struct { + .fuchsia, .emscripten => extern struct { data: [48]u8 align(@alignOf(usize)) = [_]u8{0} ** 48, }, else => void, diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 959d5fa65887517f9e6caf207129cd07b4fc7930..b3f87821fa110353f46d85b8130e9be0d5671fe6 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -142,7 +142,6 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { .opengl, .plan9, - .minix, .contiki, .other, => "unknown", @@ -212,7 +211,6 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { .opencl, .opengl, .plan9, - .minix, .contiki, => .UnknownOS, -- 2.54.0 From 8af4d651088abba258c40cefdf8f9140cf1d8b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 10 Aug 2024 17:59:13 +0200 Subject: [PATCH 8/9] std.Target: Remove liteos OS tag. It has not seen development in 4 years. https://github.com/LiteOS/LiteOS/commits/master --- lib/compiler/aro/aro/target.zig | 1 - lib/std/Target.zig | 7 ------- src/codegen/llvm.zig | 2 -- 3 files changed, 10 deletions(-) diff --git a/lib/compiler/aro/aro/target.zig b/lib/compiler/aro/aro/target.zig index 56acb3583530d5f397a79e3795aa9ea60891b4d0..87b362aeb1f5b2f208de06d496bb75a168fc256e 100644 --- a/lib/compiler/aro/aro/target.zig +++ b/lib/compiler/aro/aro/target.zig @@ -649,7 +649,6 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { .visionos => "xros", .driverkit => "driverkit", .shadermodel => "shadermodel", - .liteos => "liteos", .opencl, .opengl, .vulkan, diff --git a/lib/std/Target.zig b/lib/std/Target.zig index f5bba9f2ee7d540f05eb466353d6d71aca366535..3471dc2c1efd0e8c61bfa0199bf8e07ea6449ca0 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -28,7 +28,6 @@ pub const Os = struct { haiku, hurd, linux, - liteos, plan9, rtems, serenity, @@ -166,7 +165,6 @@ pub const Os = struct { .emscripten, .driverkit, .shadermodel, - .liteos, .uefi, .opencl, // TODO: OpenCL versions .opengl, // TODO: GLSL versions @@ -396,7 +394,6 @@ pub const Os = struct { .emscripten, .driverkit, .shadermodel, - .liteos, .uefi, .opencl, // TODO: OpenCL versions .opengl, // TODO: GLSL versions @@ -594,7 +591,6 @@ pub const Os = struct { .emscripten, .driverkit, .shadermodel, - .liteos, .uefi, .opencl, .opengl, @@ -708,7 +704,6 @@ pub const Abi = enum { .wasi, .emscripten, => .musl, - .liteos => .ohos, .opencl, .opengl, .vulkan, @@ -1853,7 +1848,6 @@ pub const DynamicLinker = struct { .hurd, .driverkit, .shadermodel, - .liteos, => none, }; } @@ -2342,7 +2336,6 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 { .opengl, .driverkit, .shadermodel, - .liteos, => @panic("TODO specify the C integer and float type sizes for this OS"), } } diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index b3f87821fa110353f46d85b8130e9be0d5671fe6..be8293db224e0c1ec20348513e7956226807b819 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -135,7 +135,6 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { .watchos => "watchos", .driverkit => "driverkit", .shadermodel => "shadermodel", - .liteos => "liteos", .visionos => "xros", .serenity => "serenity", .vulkan => "vulkan", @@ -246,7 +245,6 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { .emscripten => .Emscripten, .driverkit => .DriverKit, .shadermodel => .ShaderModel, - .liteos => .LiteOS, .vulkan => .Vulkan, .serenity => .Serenity, }; -- 2.54.0 From 9f1fb45201e59945acc7e48fc394bba4064d52f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 12 Aug 2024 09:02:46 +0200 Subject: [PATCH 9/9] llvm: Move some OS selection prongs for clarity. This makes it clearer which OSs are not known to or supported by LLVM at all vs the ones where we're intentionally passing choosing "unknown". --- src/codegen/llvm.zig | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index be8293db224e0c1ec20348513e7956226807b819..4e455467c4420f47edcaee7e15939339cb8b8288 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -110,7 +110,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { .netbsd => "netbsd", .openbsd => "openbsd", .solaris, .illumos => "solaris", - .windows => "windows", + .windows, .uefi => "windows", .zos => "zos", .haiku => "haiku", .rtems => "rtems", @@ -128,7 +128,6 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { .hurd => "hurd", .wasi => "wasi", .emscripten => "emscripten", - .uefi => "windows", .macos => "macosx", .ios => "ios", .tvos => "tvos", @@ -205,14 +204,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { return switch (os_tag) { - .freestanding, - .other, - .opencl, - .opengl, - .plan9, - .contiki, - => .UnknownOS, - + .freestanding => .UnknownOS, .windows, .uefi => .Win32, .dragonfly => .DragonFly, .freebsd => .FreeBSD, @@ -231,6 +223,7 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { .cuda => .CUDA, .nvcl => .NVCL, .amdhsa => .AMDHSA, + .opencl => .UnknownOS, // https://llvm.org/docs/SPIRVUsage.html#target-triples .ps4 => .PS4, .ps5 => .PS5, .elfiamcu => .ELFIAMCU, @@ -247,6 +240,12 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType { .shadermodel => .ShaderModel, .vulkan => .Vulkan, .serenity => .Serenity, + + .opengl, + .plan9, + .contiki, + .other, + => .UnknownOS, }; } -- 2.54.0