mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
represent Mac Catalyst as aarch64-maccatalyst-none rather than aarch64-ios-macabi
Apple's own headers and tbd files prefer to think of Mac Catalyst as a distinct OS target. Earlier, when DriverKit support was added to LLVM, it was represented a distinct OS. So why Apple decided to only represent Mac Catalyst as an ABI in the target triple is beyond me. But this isn't the first time they've ignored established target triple norms (see: armv7k and aarch64_32) and it probably won't be the last. While doing this, I also audited all Darwin OS prongs throughout the codebase and made sure they cover all the tags.
This commit is contained in:
parent
2e6f7d36b9
commit
9ab7eec23e
5
lib/compiler/aro/aro/Compilation.zig
vendored
5
lib/compiler/aro/aro/Compilation.zig
vendored
@ -335,6 +335,7 @@ fn generateSystemDefines(comp: *Compilation, w: *Io.Writer) !void {
|
|||||||
.openbsd => try define(w, "__OpenBSD__"),
|
.openbsd => try define(w, "__OpenBSD__"),
|
||||||
.dragonfly => try define(w, "__DragonFly__"),
|
.dragonfly => try define(w, "__DragonFly__"),
|
||||||
.illumos => try defineStd(w, "sun", is_gnu),
|
.illumos => try defineStd(w, "sun", is_gnu),
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.ios,
|
.ios,
|
||||||
@ -635,7 +636,7 @@ fn generateSystemDefines(comp: *Compilation, w: *Io.Writer) !void {
|
|||||||
},
|
},
|
||||||
.aarch64, .aarch64_be => {
|
.aarch64, .aarch64_be => {
|
||||||
try define(w, "__aarch64__");
|
try define(w, "__aarch64__");
|
||||||
if (comp.target.os.tag == .macos) {
|
if (comp.target.os.tag.isDarwin()) {
|
||||||
try define(w, "__AARCH64_SIMD__");
|
try define(w, "__AARCH64_SIMD__");
|
||||||
if (ptr_width == 32) {
|
if (ptr_width == 32) {
|
||||||
try define(w, "__ARM64_ARCH_8_32__");
|
try define(w, "__ARM64_ARCH_8_32__");
|
||||||
@ -992,7 +993,7 @@ fn writeBuiltinMacros(comp: *Compilation, system_defines_mode: SystemDefinesMode
|
|||||||
\\
|
\\
|
||||||
);
|
);
|
||||||
if (comp.langopts.standard.atLeast(.c11)) switch (comp.target.os.tag) {
|
if (comp.langopts.standard.atLeast(.c11)) switch (comp.target.os.tag) {
|
||||||
.openbsd, .driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
try w.writeAll("#define __STDC_NO_THREADS__ 1\n");
|
try w.writeAll("#define __STDC_NO_THREADS__ 1\n");
|
||||||
},
|
},
|
||||||
.ps4, .ps5 => {
|
.ps4, .ps5 => {
|
||||||
|
|||||||
1
lib/compiler/aro/aro/Driver.zig
vendored
1
lib/compiler/aro/aro/Driver.zig
vendored
@ -1467,6 +1467,7 @@ pub fn getPICMode(d: *Driver, lastpic: []const u8) Compilation.Error!struct { ba
|
|||||||
// generation, independent of the argument order.
|
// generation, independent of the argument order.
|
||||||
if (kernel_or_kext and
|
if (kernel_or_kext and
|
||||||
(!(target.os.tag != .ios) or (target.os.isAtLeast(.ios, .{ .major = 6, .minor = 0, .patch = 0 }) orelse false)) and
|
(!(target.os.tag != .ios) or (target.os.isAtLeast(.ios, .{ .major = 6, .minor = 0, .patch = 0 }) orelse false)) and
|
||||||
|
(!(target.os.tag != .maccatalyst) or (target.os.isAtLeast(.maccatalyst, .{ .major = 6, .minor = 0, .patch = 0 }) orelse false)) and
|
||||||
!(target.os.tag != .watchos) and
|
!(target.os.tag != .watchos) and
|
||||||
!(target.os.tag != .driverkit))
|
!(target.os.tag != .driverkit))
|
||||||
{
|
{
|
||||||
|
|||||||
2
lib/compiler/aro/aro/TypeStore.zig
vendored
2
lib/compiler/aro/aro/TypeStore.zig
vendored
@ -2091,7 +2091,7 @@ fn generateVaListType(ts: *TypeStore, comp: *Compilation) !QualType {
|
|||||||
.xcore,
|
.xcore,
|
||||||
=> return .void_pointer,
|
=> return .void_pointer,
|
||||||
.aarch64, .aarch64_be => switch (comp.target.os.tag) {
|
.aarch64, .aarch64_be => switch (comp.target.os.tag) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos, .windows => return .char_pointer,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .windows => return .char_pointer,
|
||||||
else => .aarch64_va_list,
|
else => .aarch64_va_list,
|
||||||
},
|
},
|
||||||
.arm, .armeb, .thumb, .thumbeb => .arm_va_list,
|
.arm, .armeb, .thumb, .thumbeb => .arm_va_list,
|
||||||
|
|||||||
9
lib/compiler/aro/aro/target.zig
vendored
9
lib/compiler/aro/aro/target.zig
vendored
@ -674,7 +674,7 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 {
|
|||||||
.emscripten => "emscripten",
|
.emscripten => "emscripten",
|
||||||
.uefi => "windows",
|
.uefi => "windows",
|
||||||
.macos => "macosx",
|
.macos => "macosx",
|
||||||
.ios => "ios",
|
.ios, .maccatalyst => "ios",
|
||||||
.tvos => "tvos",
|
.tvos => "tvos",
|
||||||
.watchos => "watchos",
|
.watchos => "watchos",
|
||||||
.driverkit => "driverkit",
|
.driverkit => "driverkit",
|
||||||
@ -703,7 +703,8 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 {
|
|||||||
writer.writeByte('-') catch unreachable;
|
writer.writeByte('-') catch unreachable;
|
||||||
|
|
||||||
const llvm_abi = switch (target.abi) {
|
const llvm_abi = switch (target.abi) {
|
||||||
.none, .ilp32 => "unknown",
|
.none => if (target.os.tag == .maccatalyst) "macabi" else "unknown",
|
||||||
|
.ilp32 => "unknown",
|
||||||
.gnu => "gnu",
|
.gnu => "gnu",
|
||||||
.gnuabin32 => "gnuabin32",
|
.gnuabin32 => "gnuabin32",
|
||||||
.gnuabi64 => "gnuabi64",
|
.gnuabi64 => "gnuabi64",
|
||||||
@ -728,7 +729,6 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 {
|
|||||||
.msvc => "msvc",
|
.msvc => "msvc",
|
||||||
.itanium => "itanium",
|
.itanium => "itanium",
|
||||||
.simulator => "simulator",
|
.simulator => "simulator",
|
||||||
.macabi => "macabi",
|
|
||||||
.ohos => "ohos",
|
.ohos => "ohos",
|
||||||
.ohoseabi => "ohoseabi",
|
.ohoseabi => "ohoseabi",
|
||||||
};
|
};
|
||||||
@ -742,6 +742,7 @@ pub fn isPIEDefault(target: std.Target) DefaultPIStatus {
|
|||||||
return switch (target.os.tag) {
|
return switch (target.os.tag) {
|
||||||
.haiku,
|
.haiku,
|
||||||
|
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.ios,
|
.ios,
|
||||||
.tvos,
|
.tvos,
|
||||||
@ -809,6 +810,7 @@ pub fn isPICdefault(target: std.Target) DefaultPIStatus {
|
|||||||
return switch (target.os.tag) {
|
return switch (target.os.tag) {
|
||||||
.haiku,
|
.haiku,
|
||||||
|
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.ios,
|
.ios,
|
||||||
.tvos,
|
.tvos,
|
||||||
@ -917,6 +919,7 @@ pub fn isPICDefaultForced(target: std.Target) DefaultPIStatus {
|
|||||||
return if (target.cpu.arch == .x86_64) .yes else .no;
|
return if (target.cpu.arch == .x86_64) .yes else .no;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.ios,
|
.ios,
|
||||||
.tvos,
|
.tvos,
|
||||||
|
|||||||
@ -49,7 +49,7 @@ fn clear_cache(start: usize, end: usize) callconv(.c) void {
|
|||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
const apple = switch (os) {
|
const apple = switch (os) {
|
||||||
.ios, .macos, .watchos, .tvos, .visionos => true,
|
.ios, .maccatalyst, .macos, .watchos, .tvos, .visionos => true,
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
if (x86) {
|
if (x86) {
|
||||||
|
|||||||
@ -538,7 +538,7 @@ pub const Manifest = struct {
|
|||||||
// disambiguates by returning EEXIST, indicating original
|
// disambiguates by returning EEXIST, indicating original
|
||||||
// failure was a race, or ENOENT, indicating deletion of
|
// failure was a race, or ENOENT, indicating deletion of
|
||||||
// the directory of our open handle.
|
// the directory of our open handle.
|
||||||
if (builtin.os.tag != .macos) {
|
if (!builtin.os.tag.isDarwin()) {
|
||||||
self.diagnostic = .{ .manifest_create = error.FileNotFound };
|
self.diagnostic = .{ .manifest_create = error.FileNotFound };
|
||||||
return error.CacheCheckFailed;
|
return error.CacheCheckFailed;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -564,7 +564,7 @@ pub const Evented = switch (builtin.os.tag) {
|
|||||||
.x86_64, .aarch64 => @import("Io/IoUring.zig"),
|
.x86_64, .aarch64 => @import("Io/IoUring.zig"),
|
||||||
else => void, // context-switching code not implemented yet
|
else => void, // context-switching code not implemented yet
|
||||||
},
|
},
|
||||||
.dragonfly, .freebsd, .netbsd, .openbsd, .macos, .ios, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
.dragonfly, .freebsd, .netbsd, .openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
||||||
.x86_64, .aarch64 => @import("Io/Kqueue.zig"),
|
.x86_64, .aarch64 => @import("Io/Kqueue.zig"),
|
||||||
else => void, // context-switching code not implemented yet
|
else => void, // context-switching code not implemented yet
|
||||||
},
|
},
|
||||||
|
|||||||
@ -5140,11 +5140,11 @@ fn clockToPosix(clock: Io.Clock) posix.clockid_t {
|
|||||||
return switch (clock) {
|
return switch (clock) {
|
||||||
.real => posix.CLOCK.REALTIME,
|
.real => posix.CLOCK.REALTIME,
|
||||||
.awake => switch (native_os) {
|
.awake => switch (native_os) {
|
||||||
.macos, .ios, .watchos, .tvos => posix.CLOCK.UPTIME_RAW,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => posix.CLOCK.UPTIME_RAW,
|
||||||
else => posix.CLOCK.MONOTONIC,
|
else => posix.CLOCK.MONOTONIC,
|
||||||
},
|
},
|
||||||
.boot => switch (native_os) {
|
.boot => switch (native_os) {
|
||||||
.macos, .ios, .watchos, .tvos => posix.CLOCK.MONOTONIC_RAW,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => posix.CLOCK.MONOTONIC_RAW,
|
||||||
// On freebsd derivatives, use MONOTONIC_FAST as currently there's
|
// On freebsd derivatives, use MONOTONIC_FAST as currently there's
|
||||||
// no precision tradeoff.
|
// no precision tradeoff.
|
||||||
.freebsd, .dragonfly => posix.CLOCK.MONOTONIC_FAST,
|
.freebsd, .dragonfly => posix.CLOCK.MONOTONIC_FAST,
|
||||||
@ -5687,7 +5687,7 @@ fn futexWait(t: *Threaded, ptr: *const std.atomic.Value(u32), expect: u32) Io.Ca
|
|||||||
else => unreachable,
|
else => unreachable,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
const c = std.c;
|
const c = std.c;
|
||||||
const flags: c.UL = .{
|
const flags: c.UL = .{
|
||||||
.op = .COMPARE_AND_WAIT,
|
.op = .COMPARE_AND_WAIT,
|
||||||
@ -5774,7 +5774,7 @@ pub fn futexWaitUncancelable(ptr: *const std.atomic.Value(u32), expect: u32) voi
|
|||||||
else => recoverableOsBugDetected(),
|
else => recoverableOsBugDetected(),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
const c = std.c;
|
const c = std.c;
|
||||||
const flags: c.UL = .{
|
const flags: c.UL = .{
|
||||||
.op = .COMPARE_AND_WAIT,
|
.op = .COMPARE_AND_WAIT,
|
||||||
@ -5872,7 +5872,7 @@ pub fn futexWake(ptr: *const std.atomic.Value(u32), max_waiters: u32) void {
|
|||||||
else => return recoverableOsBugDetected(), // deadlock due to operating system bug
|
else => return recoverableOsBugDetected(), // deadlock due to operating system bug
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
const c = std.c;
|
const c = std.c;
|
||||||
const flags: c.UL = .{
|
const flags: c.UL = .{
|
||||||
.op = .COMPARE_AND_WAIT,
|
.op = .COMPARE_AND_WAIT,
|
||||||
|
|||||||
@ -1549,11 +1549,13 @@ const have_sigwinch = switch (builtin.os.tag) {
|
|||||||
.netbsd,
|
.netbsd,
|
||||||
.openbsd,
|
.openbsd,
|
||||||
.haiku,
|
.haiku,
|
||||||
.macos,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
.watchos,
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.dragonfly,
|
.dragonfly,
|
||||||
.freebsd,
|
.freebsd,
|
||||||
.serenity,
|
.serenity,
|
||||||
|
|||||||
@ -39,6 +39,7 @@ pub const Os = struct {
|
|||||||
|
|
||||||
driverkit,
|
driverkit,
|
||||||
ios,
|
ios,
|
||||||
|
maccatalyst,
|
||||||
macos,
|
macos,
|
||||||
tvos,
|
tvos,
|
||||||
visionos,
|
visionos,
|
||||||
@ -78,6 +79,7 @@ pub const Os = struct {
|
|||||||
return switch (tag) {
|
return switch (tag) {
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -121,6 +123,7 @@ pub const Os = struct {
|
|||||||
.windows, .uefi => ".dll",
|
.windows, .uefi => ".dll",
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -180,8 +183,9 @@ pub const Os = struct {
|
|||||||
.openbsd,
|
.openbsd,
|
||||||
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.macos,
|
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
.watchos,
|
.watchos,
|
||||||
@ -546,7 +550,7 @@ pub const Os = struct {
|
|||||||
.max = .{ .major = 15, .minor = 6, .patch = 0 },
|
.max = .{ .major = 15, .minor = 6, .patch = 0 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.ios => .{
|
.ios, .maccatalyst => .{
|
||||||
.semver = .{
|
.semver = .{
|
||||||
.min = .{ .major = 15, .minor = 0, .patch = 0 },
|
.min = .{ .major = 15, .minor = 0, .patch = 0 },
|
||||||
.max = .{ .major = 18, .minor = 6, .patch = 0 },
|
.max = .{ .major = 18, .minor = 6, .patch = 0 },
|
||||||
@ -759,7 +763,6 @@ pub const Abi = enum {
|
|||||||
msvc,
|
msvc,
|
||||||
itanium,
|
itanium,
|
||||||
simulator,
|
simulator,
|
||||||
macabi,
|
|
||||||
ohos,
|
ohos,
|
||||||
ohoseabi,
|
ohoseabi,
|
||||||
|
|
||||||
@ -885,8 +888,6 @@ pub const Abi = enum {
|
|||||||
=> .eabihf,
|
=> .eabihf,
|
||||||
else => .none,
|
else => .none,
|
||||||
},
|
},
|
||||||
.ios => if (arch == .x86_64) .macabi else .none,
|
|
||||||
.tvos, .visionos, .watchos => if (arch == .x86_64) .simulator else .none,
|
|
||||||
.windows => .gnu,
|
.windows => .gnu,
|
||||||
.uefi => .msvc,
|
.uefi => .msvc,
|
||||||
.@"3ds" => .eabihf,
|
.@"3ds" => .eabihf,
|
||||||
@ -902,7 +903,12 @@ pub const Abi = enum {
|
|||||||
.serenity,
|
.serenity,
|
||||||
.dragonfly,
|
.dragonfly,
|
||||||
.driverkit,
|
.driverkit,
|
||||||
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
|
.tvos,
|
||||||
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.ps3,
|
.ps3,
|
||||||
.ps4,
|
.ps4,
|
||||||
.ps5,
|
.ps5,
|
||||||
@ -1018,7 +1024,7 @@ pub const ObjectFormat = enum {
|
|||||||
|
|
||||||
pub fn default(os_tag: Os.Tag, arch: Cpu.Arch) ObjectFormat {
|
pub fn default(os_tag: Os.Tag, arch: Cpu.Arch) ObjectFormat {
|
||||||
return switch (os_tag) {
|
return switch (os_tag) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => .macho,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => .macho,
|
||||||
.plan9 => .plan9,
|
.plan9 => .plan9,
|
||||||
.uefi, .windows => .coff,
|
.uefi, .windows => .coff,
|
||||||
else => switch (arch) {
|
else => switch (arch) {
|
||||||
@ -1988,7 +1994,7 @@ pub const Cpu = struct {
|
|||||||
},
|
},
|
||||||
.armeb, .thumbeb => &arm.cpu.baseline,
|
.armeb, .thumbeb => &arm.cpu.baseline,
|
||||||
.aarch64 => switch (os.tag) {
|
.aarch64 => switch (os.tag) {
|
||||||
.driverkit, .macos => &aarch64.cpu.apple_m1,
|
.driverkit, .maccatalyst, .macos => &aarch64.cpu.apple_m1,
|
||||||
.ios, .tvos => &aarch64.cpu.apple_a7,
|
.ios, .tvos => &aarch64.cpu.apple_a7,
|
||||||
.visionos => &aarch64.cpu.apple_m2,
|
.visionos => &aarch64.cpu.apple_m2,
|
||||||
.watchos => &aarch64.cpu.apple_s4,
|
.watchos => &aarch64.cpu.apple_s4,
|
||||||
@ -2014,8 +2020,8 @@ pub const Cpu = struct {
|
|||||||
.sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8.
|
.sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8.
|
||||||
.x86 => &x86.cpu.pentium4,
|
.x86 => &x86.cpu.pentium4,
|
||||||
.x86_64 => switch (os.tag) {
|
.x86_64 => switch (os.tag) {
|
||||||
.driverkit => &x86.cpu.nehalem,
|
.driverkit, .maccatalyst => &x86.cpu.nehalem,
|
||||||
.ios, .macos, .tvos, .visionos, .watchos => &x86.cpu.core2,
|
.macos => &x86.cpu.core2,
|
||||||
.ps4 => &x86.cpu.btver2,
|
.ps4 => &x86.cpu.btver2,
|
||||||
.ps5 => &x86.cpu.znver2,
|
.ps5 => &x86.cpu.znver2,
|
||||||
else => generic(arch),
|
else => generic(arch),
|
||||||
@ -2112,7 +2118,7 @@ pub inline fn isMuslLibC(target: *const Target) bool {
|
|||||||
|
|
||||||
pub inline fn isDarwinLibC(target: *const Target) bool {
|
pub inline fn isDarwinLibC(target: *const Target) bool {
|
||||||
return switch (target.abi) {
|
return switch (target.abi) {
|
||||||
.none, .macabi, .simulator => target.os.tag.isDarwin(),
|
.none, .simulator => target.os.tag.isDarwin(),
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -2141,8 +2147,9 @@ pub fn requiresLibC(target: *const Target) bool {
|
|||||||
return switch (target.os.tag) {
|
return switch (target.os.tag) {
|
||||||
.illumos,
|
.illumos,
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.macos,
|
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.watchos,
|
.watchos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -2307,6 +2314,7 @@ pub const DynamicLinker = struct {
|
|||||||
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -2722,6 +2730,7 @@ pub const DynamicLinker = struct {
|
|||||||
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -3234,6 +3243,7 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) u16 {
|
|||||||
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
|
|||||||
@ -156,7 +156,7 @@ impl: Impl,
|
|||||||
pub const max_name_len = switch (native_os) {
|
pub const max_name_len = switch (native_os) {
|
||||||
.linux => 15,
|
.linux => 15,
|
||||||
.windows => 31,
|
.windows => 31,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => 63,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 63,
|
||||||
.netbsd => 31,
|
.netbsd => 31,
|
||||||
.freebsd => 15,
|
.freebsd => 15,
|
||||||
.openbsd => 23,
|
.openbsd => 23,
|
||||||
@ -234,7 +234,7 @@ pub fn setName(self: Thread, name: []const u8) SetNameError!void {
|
|||||||
else => |err| return windows.unexpectedStatus(err),
|
else => |err| return windows.unexpectedStatus(err),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => if (use_pthreads) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => if (use_pthreads) {
|
||||||
// There doesn't seem to be a way to set the name for an arbitrary thread, only the current one.
|
// There doesn't seem to be a way to set the name for an arbitrary thread, only the current one.
|
||||||
if (self.getHandle() != std.c.pthread_self()) return error.Unsupported;
|
if (self.getHandle() != std.c.pthread_self()) return error.Unsupported;
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ pub fn getName(self: Thread, buffer_ptr: *[max_name_len:0]u8) GetNameError!?[]co
|
|||||||
else => |err| return windows.unexpectedStatus(err),
|
else => |err| return windows.unexpectedStatus(err),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => if (use_pthreads) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => if (use_pthreads) {
|
||||||
const err = std.c.pthread_getname_np(self.getHandle(), buffer.ptr, max_name_len + 1);
|
const err = std.c.pthread_getname_np(self.getHandle(), buffer.ptr, max_name_len + 1);
|
||||||
switch (@as(posix.E, @enumFromInt(err))) {
|
switch (@as(posix.E, @enumFromInt(err))) {
|
||||||
.SUCCESS => return std.mem.sliceTo(buffer, 0),
|
.SUCCESS => return std.mem.sliceTo(buffer, 0),
|
||||||
@ -411,7 +411,7 @@ pub const Id = switch (native_os) {
|
|||||||
.wasi,
|
.wasi,
|
||||||
.serenity,
|
.serenity,
|
||||||
=> u32,
|
=> u32,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => u64,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => u64,
|
||||||
.windows => windows.DWORD,
|
.windows => windows.DWORD,
|
||||||
else => usize,
|
else => usize,
|
||||||
};
|
};
|
||||||
@ -741,7 +741,7 @@ const PosixThreadImpl = struct {
|
|||||||
.linux => {
|
.linux => {
|
||||||
return LinuxThreadImpl.getCurrentId();
|
return LinuxThreadImpl.getCurrentId();
|
||||||
},
|
},
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
var thread_id: u64 = undefined;
|
var thread_id: u64 = undefined;
|
||||||
// Pass thread=null to get the current thread ID.
|
// Pass thread=null to get the current thread ID.
|
||||||
assert(c.pthread_threadid_np(null, &thread_id) == 0);
|
assert(c.pthread_threadid_np(null, &thread_id) == 0);
|
||||||
@ -1734,7 +1734,7 @@ test "setName, getName" {
|
|||||||
context.test_done_event.wait();
|
context.test_done_event.wait();
|
||||||
|
|
||||||
switch (native_os) {
|
switch (native_os) {
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
const res = thread.setName("foobar");
|
const res = thread.setName("foobar");
|
||||||
try std.testing.expectError(error.Unsupported, res);
|
try std.testing.expectError(error.Unsupported, res);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -987,7 +987,7 @@ pub const VaList = switch (builtin.cpu.arch) {
|
|||||||
.xcore,
|
.xcore,
|
||||||
=> *anyopaque,
|
=> *anyopaque,
|
||||||
.aarch64, .aarch64_be => switch (builtin.os.tag) {
|
.aarch64, .aarch64_be => switch (builtin.os.tag) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos, .windows => *u8,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .windows => *u8,
|
||||||
else => switch (builtin.zig_backend) {
|
else => switch (builtin.zig_backend) {
|
||||||
else => VaListAarch64,
|
else => VaListAarch64,
|
||||||
.stage2_llvm => @compileError("disabled due to miscompilations"),
|
.stage2_llvm => @compileError("disabled due to miscompilations"),
|
||||||
|
|||||||
226
lib/std/c.zig
226
lib/std/c.zig
@ -115,7 +115,7 @@ pub const timespec = switch (native_os) {
|
|||||||
sec: time_t,
|
sec: time_t,
|
||||||
nsec: c_long,
|
nsec: c_long,
|
||||||
},
|
},
|
||||||
.dragonfly, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.dragonfly, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sec: isize,
|
sec: isize,
|
||||||
nsec: isize,
|
nsec: isize,
|
||||||
},
|
},
|
||||||
@ -134,7 +134,7 @@ pub const dev_t = switch (native_os) {
|
|||||||
.linux => linux.dev_t,
|
.linux => linux.dev_t,
|
||||||
.emscripten => emscripten.dev_t,
|
.emscripten => emscripten.dev_t,
|
||||||
.wasi => wasi.device_t,
|
.wasi => wasi.device_t,
|
||||||
.openbsd, .haiku, .illumos, .macos, .ios, .tvos, .watchos, .visionos => i32,
|
.openbsd, .haiku, .illumos, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => i32,
|
||||||
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L43
|
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L43
|
||||||
.netbsd, .freebsd, .serenity => u64,
|
.netbsd, .freebsd, .serenity => u64,
|
||||||
else => void,
|
else => void,
|
||||||
@ -145,7 +145,7 @@ pub const mode_t = switch (native_os) {
|
|||||||
.emscripten => emscripten.mode_t,
|
.emscripten => emscripten.mode_t,
|
||||||
.openbsd, .haiku, .netbsd, .illumos, .wasi, .windows => u32,
|
.openbsd, .haiku, .netbsd, .illumos, .wasi, .windows => u32,
|
||||||
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L44
|
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L44
|
||||||
.freebsd, .macos, .ios, .tvos, .watchos, .visionos, .dragonfly, .serenity => u16,
|
.freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .dragonfly, .serenity => u16,
|
||||||
else => u0,
|
else => u0,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ pub const passwd = switch (native_os) {
|
|||||||
dir: ?[*:0]const u8, // home directory
|
dir: ?[*:0]const u8, // home directory
|
||||||
shell: ?[*:0]const u8, // shell program
|
shell: ?[*:0]const u8, // shell program
|
||||||
},
|
},
|
||||||
.netbsd, .openbsd, .macos => extern struct {
|
.netbsd, .openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
name: ?[*:0]const u8, // user name
|
name: ?[*:0]const u8, // user name
|
||||||
passwd: ?[*:0]const u8, // encrypted password
|
passwd: ?[*:0]const u8, // encrypted password
|
||||||
uid: uid_t, // user uid
|
uid: uid_t, // user uid
|
||||||
@ -223,7 +223,7 @@ pub const passwd = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const group = switch (native_os) {
|
pub const group = switch (native_os) {
|
||||||
.linux, .freebsd, .openbsd, .dragonfly, .netbsd, .macos => extern struct {
|
.linux, .freebsd, .openbsd, .dragonfly, .netbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
name: ?[*:0]const u8,
|
name: ?[*:0]const u8,
|
||||||
passwd: ?[*:0]const u8,
|
passwd: ?[*:0]const u8,
|
||||||
gid: gid_t,
|
gid: gid_t,
|
||||||
@ -275,7 +275,7 @@ pub const CLOCK = clockid_t;
|
|||||||
pub const clockid_t = switch (native_os) {
|
pub const clockid_t = switch (native_os) {
|
||||||
.linux, .emscripten => linux.clockid_t,
|
.linux, .emscripten => linux.clockid_t,
|
||||||
.wasi => wasi.clockid_t,
|
.wasi => wasi.clockid_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => enum(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => enum(u32) {
|
||||||
REALTIME = 0,
|
REALTIME = 0,
|
||||||
MONOTONIC = 6,
|
MONOTONIC = 6,
|
||||||
MONOTONIC_RAW = 4,
|
MONOTONIC_RAW = 4,
|
||||||
@ -457,7 +457,7 @@ pub const E = switch (native_os) {
|
|||||||
DQUOT = 10069,
|
DQUOT = 10069,
|
||||||
_,
|
_,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.E,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.E,
|
||||||
.freebsd => freebsd.E,
|
.freebsd => freebsd.E,
|
||||||
.illumos => enum(u16) {
|
.illumos => enum(u16) {
|
||||||
/// No error occurred.
|
/// No error occurred.
|
||||||
@ -833,7 +833,7 @@ pub const F = switch (native_os) {
|
|||||||
pub const GETFL = 3;
|
pub const GETFL = 3;
|
||||||
pub const SETFL = 4;
|
pub const SETFL = 4;
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// duplicate file descriptor
|
/// duplicate file descriptor
|
||||||
pub const DUPFD = 0;
|
pub const DUPFD = 0;
|
||||||
/// get file descriptor flags
|
/// get file descriptor flags
|
||||||
@ -1243,7 +1243,7 @@ pub const R_OK = switch (native_os) {
|
|||||||
pub const Flock = switch (native_os) {
|
pub const Flock = switch (native_os) {
|
||||||
.linux => linux.Flock,
|
.linux => linux.Flock,
|
||||||
.emscripten => emscripten.Flock,
|
.emscripten => emscripten.Flock,
|
||||||
.openbsd, .dragonfly, .netbsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.openbsd, .dragonfly, .netbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
start: off_t,
|
start: off_t,
|
||||||
len: off_t,
|
len: off_t,
|
||||||
pid: pid_t,
|
pid: pid_t,
|
||||||
@ -1294,7 +1294,7 @@ pub const Flock = switch (native_os) {
|
|||||||
};
|
};
|
||||||
pub const HOST_NAME_MAX = switch (native_os) {
|
pub const HOST_NAME_MAX = switch (native_os) {
|
||||||
.linux => linux.HOST_NAME_MAX,
|
.linux => linux.HOST_NAME_MAX,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => 72,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 72,
|
||||||
.openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd => 255,
|
.openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd => 255,
|
||||||
// https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L22
|
// https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L22
|
||||||
.serenity => 64,
|
.serenity => 64,
|
||||||
@ -1305,7 +1305,7 @@ pub const IOV_MAX = switch (native_os) {
|
|||||||
.emscripten => emscripten.IOV_MAX,
|
.emscripten => emscripten.IOV_MAX,
|
||||||
// https://github.com/SerenityOS/serenity/blob/098af0f846a87b651731780ff48420205fd33754/Kernel/API/POSIX/sys/uio.h#L16
|
// https://github.com/SerenityOS/serenity/blob/098af0f846a87b651731780ff48420205fd33754/Kernel/API/POSIX/sys/uio.h#L16
|
||||||
.openbsd, .haiku, .illumos, .wasi, .serenity => 1024,
|
.openbsd, .haiku, .illumos, .wasi, .serenity => 1024,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => 16,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 16,
|
||||||
.dragonfly, .netbsd, .freebsd => KERN.IOV_MAX,
|
.dragonfly, .netbsd, .freebsd => KERN.IOV_MAX,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
@ -1524,7 +1524,7 @@ pub const KERN = switch (native_os) {
|
|||||||
pub const MADV = switch (native_os) {
|
pub const MADV = switch (native_os) {
|
||||||
.linux => linux.MADV,
|
.linux => linux.MADV,
|
||||||
.emscripten => emscripten.MADV,
|
.emscripten => emscripten.MADV,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const NORMAL = 0;
|
pub const NORMAL = 0;
|
||||||
pub const RANDOM = 1;
|
pub const RANDOM = 1;
|
||||||
pub const SEQUENTIAL = 2;
|
pub const SEQUENTIAL = 2;
|
||||||
@ -1622,7 +1622,7 @@ pub const MLOCK = switch (native_os) {
|
|||||||
pub const MSF = switch (native_os) {
|
pub const MSF = switch (native_os) {
|
||||||
.linux => linux.MSF,
|
.linux => linux.MSF,
|
||||||
.emscripten => emscripten.MSF,
|
.emscripten => emscripten.MSF,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const ASYNC = 0x1;
|
pub const ASYNC = 0x1;
|
||||||
pub const INVALIDATE = 0x2;
|
pub const INVALIDATE = 0x2;
|
||||||
/// invalidate, leave mapped
|
/// invalidate, leave mapped
|
||||||
@ -1651,7 +1651,7 @@ pub const NAME_MAX = switch (native_os) {
|
|||||||
// character, but POSIX definition says that NAME_MAX does not include the
|
// character, but POSIX definition says that NAME_MAX does not include the
|
||||||
// terminating null.
|
// terminating null.
|
||||||
// https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L20
|
// https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L20
|
||||||
.haiku, .openbsd, .dragonfly, .netbsd, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 255,
|
.haiku, .openbsd, .dragonfly, .netbsd, .illumos, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => 255,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const PATH_MAX = switch (native_os) {
|
pub const PATH_MAX = switch (native_os) {
|
||||||
@ -1659,7 +1659,7 @@ pub const PATH_MAX = switch (native_os) {
|
|||||||
.emscripten => emscripten.PATH_MAX,
|
.emscripten => emscripten.PATH_MAX,
|
||||||
.wasi => 4096,
|
.wasi => 4096,
|
||||||
.windows => 260,
|
.windows => 260,
|
||||||
.openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 1024,
|
.openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => 1024,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1676,7 +1676,7 @@ pub const POLL = switch (native_os) {
|
|||||||
pub const NVAL = 0x4000;
|
pub const NVAL = 0x4000;
|
||||||
},
|
},
|
||||||
.windows => ws2_32.POLL,
|
.windows => ws2_32.POLL,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const IN = 0x001;
|
pub const IN = 0x001;
|
||||||
pub const PRI = 0x002;
|
pub const PRI = 0x002;
|
||||||
pub const OUT = 0x004;
|
pub const OUT = 0x004;
|
||||||
@ -1823,7 +1823,7 @@ pub const PROT = switch (native_os) {
|
|||||||
/// page can be executed
|
/// page can be executed
|
||||||
pub const EXEC = 0x4;
|
pub const EXEC = 0x4;
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// [MC2] no permissions
|
/// [MC2] no permissions
|
||||||
pub const NONE: vm_prot_t = 0x00;
|
pub const NONE: vm_prot_t = 0x00;
|
||||||
/// [MC2] pages can be read
|
/// [MC2] pages can be read
|
||||||
@ -1846,7 +1846,7 @@ pub const RLIM = switch (native_os) {
|
|||||||
.linux => linux.RLIM,
|
.linux => linux.RLIM,
|
||||||
.emscripten => emscripten.RLIM,
|
.emscripten => emscripten.RLIM,
|
||||||
// https://github.com/SerenityOS/serenity/blob/aae106e37b48f2158e68902293df1e4bf7b80c0f/Userland/Libraries/LibC/sys/resource.h#L52
|
// https://github.com/SerenityOS/serenity/blob/aae106e37b48f2158e68902293df1e4bf7b80c0f/Userland/Libraries/LibC/sys/resource.h#L52
|
||||||
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => struct {
|
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => struct {
|
||||||
/// No limit
|
/// No limit
|
||||||
pub const INFINITY: rlim_t = (1 << 63) - 1;
|
pub const INFINITY: rlim_t = (1 << 63) - 1;
|
||||||
|
|
||||||
@ -1903,7 +1903,7 @@ pub const S = switch (native_os) {
|
|||||||
return m & IFMT == IFSOCK;
|
return m & IFMT == IFSOCK;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const IFMT = 0o170000;
|
pub const IFMT = 0o170000;
|
||||||
|
|
||||||
pub const IFIFO = 0o010000;
|
pub const IFIFO = 0o010000;
|
||||||
@ -2396,7 +2396,7 @@ pub const S = switch (native_os) {
|
|||||||
pub const SA = switch (native_os) {
|
pub const SA = switch (native_os) {
|
||||||
.linux => linux.SA,
|
.linux => linux.SA,
|
||||||
.emscripten => emscripten.SA,
|
.emscripten => emscripten.SA,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// take signal on signal stack
|
/// take signal on signal stack
|
||||||
pub const ONSTACK = 0x0001;
|
pub const ONSTACK = 0x0001;
|
||||||
/// restart system on signal return
|
/// restart system on signal return
|
||||||
@ -2502,7 +2502,7 @@ pub const _SC = if (builtin.abi.isAndroid()) enum(c_int) {
|
|||||||
PAGESIZE = 39,
|
PAGESIZE = 39,
|
||||||
NPROCESSORS_ONLN = 97,
|
NPROCESSORS_ONLN = 97,
|
||||||
} else switch (native_os) {
|
} else switch (native_os) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => enum(c_int) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => enum(c_int) {
|
||||||
PAGESIZE = 29,
|
PAGESIZE = 29,
|
||||||
},
|
},
|
||||||
.dragonfly => enum(c_int) {
|
.dragonfly => enum(c_int) {
|
||||||
@ -2562,7 +2562,7 @@ pub const SEEK = switch (native_os) {
|
|||||||
pub const END: wasi.whence_t = .END;
|
pub const END: wasi.whence_t = .END;
|
||||||
},
|
},
|
||||||
// https://github.com/SerenityOS/serenity/blob/808ce594db1f2190e5212a250e900bde2ffe710b/Kernel/API/POSIX/stdio.h#L15-L17
|
// https://github.com/SerenityOS/serenity/blob/808ce594db1f2190e5212a250e900bde2ffe710b/Kernel/API/POSIX/stdio.h#L15-L17
|
||||||
.openbsd, .haiku, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .windows, .serenity => struct {
|
.openbsd, .haiku, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .windows, .serenity => struct {
|
||||||
pub const SET = 0;
|
pub const SET = 0;
|
||||||
pub const CUR = 1;
|
pub const CUR = 1;
|
||||||
pub const END = 2;
|
pub const END = 2;
|
||||||
@ -2622,7 +2622,7 @@ pub const SIG = switch (native_os) {
|
|||||||
/// Signal error value (returned by signal call on error)
|
/// Signal error value (returned by signal call on error)
|
||||||
pub const ERR = -1;
|
pub const ERR = -1;
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => enum(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => enum(u32) {
|
||||||
pub const ERR: ?Sigaction.handler_fn = @ptrFromInt(maxInt(usize));
|
pub const ERR: ?Sigaction.handler_fn = @ptrFromInt(maxInt(usize));
|
||||||
pub const DFL: ?Sigaction.handler_fn = @ptrFromInt(0);
|
pub const DFL: ?Sigaction.handler_fn = @ptrFromInt(0);
|
||||||
pub const IGN: ?Sigaction.handler_fn = @ptrFromInt(1);
|
pub const IGN: ?Sigaction.handler_fn = @ptrFromInt(1);
|
||||||
@ -3185,7 +3185,7 @@ pub const Sigaction = switch (native_os) {
|
|||||||
else => common_linux_Sigaction,
|
else => common_linux_Sigaction,
|
||||||
},
|
},
|
||||||
.emscripten => emscripten.Sigaction,
|
.emscripten => emscripten.Sigaction,
|
||||||
.netbsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.netbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
pub const handler_fn = *align(1) const fn (SIG) callconv(.c) void;
|
pub const handler_fn = *align(1) const fn (SIG) callconv(.c) void;
|
||||||
pub const sigaction_fn = *const fn (SIG, *const siginfo_t, ?*anyopaque) callconv(.c) void;
|
pub const sigaction_fn = *const fn (SIG, *const siginfo_t, ?*anyopaque) callconv(.c) void;
|
||||||
|
|
||||||
@ -3273,7 +3273,7 @@ pub const Sigaction = switch (native_os) {
|
|||||||
};
|
};
|
||||||
pub const T = switch (native_os) {
|
pub const T = switch (native_os) {
|
||||||
.linux => linux.T,
|
.linux => linux.T,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const IOCGWINSZ = ior(0x40000000, 't', 104, @sizeOf(winsize));
|
pub const IOCGWINSZ = ior(0x40000000, 't', 104, @sizeOf(winsize));
|
||||||
|
|
||||||
fn ior(inout: u32, group_arg: usize, num: usize, len: usize) usize {
|
fn ior(inout: u32, group_arg: usize, num: usize, len: usize) usize {
|
||||||
@ -3664,7 +3664,7 @@ pub const T = switch (native_os) {
|
|||||||
};
|
};
|
||||||
pub const IOCPARM_MASK = switch (native_os) {
|
pub const IOCPARM_MASK = switch (native_os) {
|
||||||
.windows => ws2_32.IOCPARM_MASK,
|
.windows => ws2_32.IOCPARM_MASK,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => 0x1fff,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 0x1fff,
|
||||||
else => void,
|
else => void,
|
||||||
};
|
};
|
||||||
pub const TCSA = std.posix.TCSA;
|
pub const TCSA = std.posix.TCSA;
|
||||||
@ -3679,7 +3679,7 @@ pub const VDSO = switch (native_os) {
|
|||||||
pub const W = switch (native_os) {
|
pub const W = switch (native_os) {
|
||||||
.linux => linux.W,
|
.linux => linux.W,
|
||||||
.emscripten => emscripten.W,
|
.emscripten => emscripten.W,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// [XSI] no hang in wait/no child to reap
|
/// [XSI] no hang in wait/no child to reap
|
||||||
pub const NOHANG = 0x00000001;
|
pub const NOHANG = 0x00000001;
|
||||||
/// [XSI] notify on stop, untraced child
|
/// [XSI] notify on stop, untraced child
|
||||||
@ -3939,7 +3939,7 @@ pub const accept_filter_arg = switch (native_os) {
|
|||||||
// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/6098912863ed4c7b3f70d7483910ce2956cf4ed3/sys/sys/socket.h#L164
|
// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/6098912863ed4c7b3f70d7483910ce2956cf4ed3/sys/sys/socket.h#L164
|
||||||
// https://github.com/NetBSD/src/blob/cad5c68a8524927f65e22ad651de3905382be6e0/sys/sys/socket.h#L188
|
// https://github.com/NetBSD/src/blob/cad5c68a8524927f65e22ad651de3905382be6e0/sys/sys/socket.h#L188
|
||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L504
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L504
|
||||||
.freebsd, .dragonfly, .netbsd, .macos, .driverkit, .ios, .tvos, .watchos, .visionos => extern struct {
|
.freebsd, .dragonfly, .netbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
name: [16]u8,
|
name: [16]u8,
|
||||||
arg: [240]u8,
|
arg: [240]u8,
|
||||||
},
|
},
|
||||||
@ -3948,7 +3948,7 @@ pub const accept_filter_arg = switch (native_os) {
|
|||||||
pub const clock_t = switch (native_os) {
|
pub const clock_t = switch (native_os) {
|
||||||
.linux => linux.clock_t,
|
.linux => linux.clock_t,
|
||||||
.emscripten => emscripten.clock_t,
|
.emscripten => emscripten.clock_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => c_ulong,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => c_ulong,
|
||||||
.freebsd => isize,
|
.freebsd => isize,
|
||||||
.openbsd, .illumos => i64,
|
.openbsd, .illumos => i64,
|
||||||
.netbsd => u32,
|
.netbsd => u32,
|
||||||
@ -4034,7 +4034,7 @@ pub const in_pktinfo = switch (native_os) {
|
|||||||
.linux => linux.in_pktinfo,
|
.linux => linux.in_pktinfo,
|
||||||
// https://github.com/illumos/illumos-gate/blob/608eb926e14f4ba4736b2d59e891335f1cba9e1e/usr/src/uts/common/netinet/in.h#L1132
|
// https://github.com/illumos/illumos-gate/blob/608eb926e14f4ba4736b2d59e891335f1cba9e1e/usr/src/uts/common/netinet/in.h#L1132
|
||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/netinet/in.h#L696
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/netinet/in.h#L696
|
||||||
.illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos => extern struct {
|
.illumos, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
ifindex: u32,
|
ifindex: u32,
|
||||||
spec_dst: u32,
|
spec_dst: u32,
|
||||||
addr: u32,
|
addr: u32,
|
||||||
@ -4051,7 +4051,7 @@ pub const in6_pktinfo = switch (native_os) {
|
|||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/netinet6/in6.h#L737
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/netinet6/in6.h#L737
|
||||||
// https://github.com/haiku/haiku/blob/2aab5f5f14aeb3f34c3a3d9a9064cc3c0d914bea/headers/posix/netinet6/in6.h#L63
|
// https://github.com/haiku/haiku/blob/2aab5f5f14aeb3f34c3a3d9a9064cc3c0d914bea/headers/posix/netinet6/in6.h#L63
|
||||||
// https://github.com/SerenityOS/serenity/blob/5bd8af99be0bc4b2e14f361fd7d7590e6bcfa4d6/Kernel/API/POSIX/sys/socket.h#L122
|
// https://github.com/SerenityOS/serenity/blob/5bd8af99be0bc4b2e14f361fd7d7590e6bcfa4d6/Kernel/API/POSIX/sys/socket.h#L122
|
||||||
.freebsd, .dragonfly, .netbsd, .openbsd, .illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos, .haiku, .serenity => extern struct {
|
.freebsd, .dragonfly, .netbsd, .openbsd, .illumos, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .haiku, .serenity => extern struct {
|
||||||
addr: [16]u8,
|
addr: [16]u8,
|
||||||
ifindex: u32,
|
ifindex: u32,
|
||||||
},
|
},
|
||||||
@ -4084,10 +4084,11 @@ pub const linger = switch (native_os) {
|
|||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L498
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L498
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.watchos,
|
|
||||||
.visionos,
|
.visionos,
|
||||||
|
.watchos,
|
||||||
=> extern struct {
|
=> extern struct {
|
||||||
onoff: i32, // non-zero to linger on close
|
onoff: i32, // non-zero to linger on close
|
||||||
linger: i32, // time to linger in seconds
|
linger: i32, // time to linger in seconds
|
||||||
@ -4104,9 +4105,10 @@ pub const msghdr = switch (native_os) {
|
|||||||
.netbsd,
|
.netbsd,
|
||||||
.haiku,
|
.haiku,
|
||||||
.illumos,
|
.illumos,
|
||||||
.macos,
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
.watchos,
|
.watchos,
|
||||||
@ -4139,9 +4141,10 @@ pub const msghdr_const = switch (native_os) {
|
|||||||
.netbsd,
|
.netbsd,
|
||||||
.haiku,
|
.haiku,
|
||||||
.illumos,
|
.illumos,
|
||||||
.macos,
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
.watchos,
|
.watchos,
|
||||||
@ -4191,9 +4194,10 @@ pub const cmsghdr = switch (native_os) {
|
|||||||
// https://github.com/haiku/haiku/blob/b54f586058fd6623645512e4631468cede9933b9/headers/posix/sys/socket.h#L132
|
// https://github.com/haiku/haiku/blob/b54f586058fd6623645512e4631468cede9933b9/headers/posix/sys/socket.h#L132
|
||||||
.haiku,
|
.haiku,
|
||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L1041
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L1041
|
||||||
.macos,
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
.watchos,
|
.watchos,
|
||||||
@ -4215,7 +4219,7 @@ pub const nfds_t = switch (native_os) {
|
|||||||
.emscripten => emscripten.nfds_t,
|
.emscripten => emscripten.nfds_t,
|
||||||
.haiku, .illumos, .wasi => usize,
|
.haiku, .illumos, .wasi => usize,
|
||||||
.windows => c_ulong,
|
.windows => c_ulong,
|
||||||
.openbsd, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => u32,
|
.openbsd, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => u32,
|
||||||
// https://github.com/SerenityOS/serenity/blob/265764ff2fec038855193296588a887fc322d76a/Kernel/API/POSIX/poll.h#L32
|
// https://github.com/SerenityOS/serenity/blob/265764ff2fec038855193296588a887fc322d76a/Kernel/API/POSIX/poll.h#L32
|
||||||
.serenity => c_uint,
|
.serenity => c_uint,
|
||||||
else => void,
|
else => void,
|
||||||
@ -4251,7 +4255,7 @@ pub const pollfd = switch (native_os) {
|
|||||||
pub const rlim_t = switch (native_os) {
|
pub const rlim_t = switch (native_os) {
|
||||||
.linux => linux.rlim_t,
|
.linux => linux.rlim_t,
|
||||||
.emscripten => emscripten.rlim_t,
|
.emscripten => emscripten.rlim_t,
|
||||||
.openbsd, .netbsd, .illumos, .macos, .ios, .tvos, .watchos, .visionos => u64,
|
.openbsd, .netbsd, .illumos, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => u64,
|
||||||
.haiku, .dragonfly, .freebsd => i64,
|
.haiku, .dragonfly, .freebsd => i64,
|
||||||
// https://github.com/SerenityOS/serenity/blob/aae106e37b48f2158e68902293df1e4bf7b80c0f/Userland/Libraries/LibC/sys/resource.h#L54
|
// https://github.com/SerenityOS/serenity/blob/aae106e37b48f2158e68902293df1e4bf7b80c0f/Userland/Libraries/LibC/sys/resource.h#L54
|
||||||
.serenity => usize,
|
.serenity => usize,
|
||||||
@ -4271,7 +4275,7 @@ pub const rlimit = switch (native_os) {
|
|||||||
pub const rlimit_resource = switch (native_os) {
|
pub const rlimit_resource = switch (native_os) {
|
||||||
.linux => linux.rlimit_resource,
|
.linux => linux.rlimit_resource,
|
||||||
.emscripten => emscripten.rlimit_resource,
|
.emscripten => emscripten.rlimit_resource,
|
||||||
.openbsd, .macos, .ios, .tvos, .watchos, .visionos => enum(c_int) {
|
.openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => enum(c_int) {
|
||||||
CPU = 0,
|
CPU = 0,
|
||||||
FSIZE = 1,
|
FSIZE = 1,
|
||||||
DATA = 2,
|
DATA = 2,
|
||||||
@ -4378,7 +4382,7 @@ pub const rlimit_resource = switch (native_os) {
|
|||||||
pub const rusage = switch (native_os) {
|
pub const rusage = switch (native_os) {
|
||||||
.linux => linux.rusage,
|
.linux => linux.rusage,
|
||||||
.emscripten => emscripten.rusage,
|
.emscripten => emscripten.rusage,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
utime: timeval,
|
utime: timeval,
|
||||||
stime: timeval,
|
stime: timeval,
|
||||||
maxrss: isize,
|
maxrss: isize,
|
||||||
@ -4449,7 +4453,7 @@ pub const rusage = switch (native_os) {
|
|||||||
pub const siginfo_t = switch (native_os) {
|
pub const siginfo_t = switch (native_os) {
|
||||||
.linux => linux.siginfo_t,
|
.linux => linux.siginfo_t,
|
||||||
.emscripten => emscripten.siginfo_t,
|
.emscripten => emscripten.siginfo_t,
|
||||||
.driverkit, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
signo: SIG,
|
signo: SIG,
|
||||||
errno: c_int,
|
errno: c_int,
|
||||||
code: c_int,
|
code: c_int,
|
||||||
@ -4639,7 +4643,7 @@ pub const sigset_t = switch (native_os) {
|
|||||||
.emscripten => emscripten.sigset_t,
|
.emscripten => emscripten.sigset_t,
|
||||||
// https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L19
|
// https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L19
|
||||||
.openbsd, .serenity => u32,
|
.openbsd, .serenity => u32,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.sigset_t,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.sigset_t,
|
||||||
.dragonfly, .netbsd, .illumos, .freebsd => extern struct {
|
.dragonfly, .netbsd, .illumos, .freebsd => extern struct {
|
||||||
__bits: [SIG.WORDS]u32,
|
__bits: [SIG.WORDS]u32,
|
||||||
},
|
},
|
||||||
@ -4669,7 +4673,7 @@ pub const addrinfo = if (builtin.abi.isAndroid()) extern struct {
|
|||||||
} else switch (native_os) {
|
} else switch (native_os) {
|
||||||
.linux, .emscripten => linux.addrinfo,
|
.linux, .emscripten => linux.addrinfo,
|
||||||
.windows => ws2_32.addrinfo,
|
.windows => ws2_32.addrinfo,
|
||||||
.freebsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
flags: AI,
|
flags: AI,
|
||||||
family: i32,
|
family: i32,
|
||||||
socktype: i32,
|
socktype: i32,
|
||||||
@ -4735,7 +4739,7 @@ pub const addrinfo = if (builtin.abi.isAndroid()) extern struct {
|
|||||||
pub const sockaddr = switch (native_os) {
|
pub const sockaddr = switch (native_os) {
|
||||||
.linux, .emscripten => linux.sockaddr,
|
.linux, .emscripten => linux.sockaddr,
|
||||||
.windows => ws2_32.sockaddr,
|
.windows => ws2_32.sockaddr,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
len: u8,
|
len: u8,
|
||||||
family: sa_family_t,
|
family: sa_family_t,
|
||||||
data: [14]u8,
|
data: [14]u8,
|
||||||
@ -5077,7 +5081,7 @@ pub const in_port_t = u16;
|
|||||||
pub const sa_family_t = switch (native_os) {
|
pub const sa_family_t = switch (native_os) {
|
||||||
.linux, .emscripten => linux.sa_family_t,
|
.linux, .emscripten => linux.sa_family_t,
|
||||||
.windows => ws2_32.ADDRESS_FAMILY,
|
.windows => ws2_32.ADDRESS_FAMILY,
|
||||||
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => u8,
|
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => u8,
|
||||||
// https://github.com/SerenityOS/serenity/blob/ac44ec5ebc707f9dd0c3d4759a1e17e91db5d74f/Kernel/API/POSIX/sys/socket.h#L66
|
// https://github.com/SerenityOS/serenity/blob/ac44ec5ebc707f9dd0c3d4759a1e17e91db5d74f/Kernel/API/POSIX/sys/socket.h#L66
|
||||||
.illumos, .serenity => u16,
|
.illumos, .serenity => u16,
|
||||||
else => void,
|
else => void,
|
||||||
@ -5130,7 +5134,7 @@ pub const AF = if (builtin.abi.isAndroid()) struct {
|
|||||||
} else switch (native_os) {
|
} else switch (native_os) {
|
||||||
.linux, .emscripten => linux.AF,
|
.linux, .emscripten => linux.AF,
|
||||||
.windows => ws2_32.AF,
|
.windows => ws2_32.AF,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const UNSPEC = 0;
|
pub const UNSPEC = 0;
|
||||||
pub const LOCAL = 1;
|
pub const LOCAL = 1;
|
||||||
pub const UNIX = LOCAL;
|
pub const UNIX = LOCAL;
|
||||||
@ -5416,7 +5420,7 @@ pub const PF = if (builtin.abi.isAndroid()) struct {
|
|||||||
pub const PF_MAX = AF.MAX;
|
pub const PF_MAX = AF.MAX;
|
||||||
} else switch (native_os) {
|
} else switch (native_os) {
|
||||||
.linux, .emscripten => linux.PF,
|
.linux, .emscripten => linux.PF,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const UNSPEC = AF.UNSPEC;
|
pub const UNSPEC = AF.UNSPEC;
|
||||||
pub const LOCAL = AF.LOCAL;
|
pub const LOCAL = AF.LOCAL;
|
||||||
pub const UNIX = PF.LOCAL;
|
pub const UNIX = PF.LOCAL;
|
||||||
@ -5650,7 +5654,7 @@ pub const PF = if (builtin.abi.isAndroid()) struct {
|
|||||||
pub const DT = switch (native_os) {
|
pub const DT = switch (native_os) {
|
||||||
.linux => linux.DT,
|
.linux => linux.DT,
|
||||||
// https://github.com/SerenityOS/serenity/blob/1262a7d1424d0d2e89d80644409721cbf056ab17/Kernel/API/POSIX/dirent.h#L16-L35
|
// https://github.com/SerenityOS/serenity/blob/1262a7d1424d0d2e89d80644409721cbf056ab17/Kernel/API/POSIX/dirent.h#L16-L35
|
||||||
.netbsd, .freebsd, .openbsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => struct {
|
.netbsd, .freebsd, .openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => struct {
|
||||||
pub const UNKNOWN = 0;
|
pub const UNKNOWN = 0;
|
||||||
pub const FIFO = 1;
|
pub const FIFO = 1;
|
||||||
pub const CHR = 2;
|
pub const CHR = 2;
|
||||||
@ -5679,7 +5683,7 @@ pub const MSG = switch (native_os) {
|
|||||||
.linux => linux.MSG,
|
.linux => linux.MSG,
|
||||||
.emscripten => emscripten.MSG,
|
.emscripten => emscripten.MSG,
|
||||||
.windows => ws2_32.MSG,
|
.windows => ws2_32.MSG,
|
||||||
.driverkit, .macos, .ios, .tvos, .watchos, .visionos => darwin.MSG,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.MSG,
|
||||||
.haiku => struct {
|
.haiku => struct {
|
||||||
pub const OOB = 0x0001;
|
pub const OOB = 0x0001;
|
||||||
pub const PEEK = 0x0002;
|
pub const PEEK = 0x0002;
|
||||||
@ -5796,7 +5800,7 @@ pub const SOCK = switch (native_os) {
|
|||||||
.linux => linux.SOCK,
|
.linux => linux.SOCK,
|
||||||
.emscripten => emscripten.SOCK,
|
.emscripten => emscripten.SOCK,
|
||||||
.windows => ws2_32.SOCK,
|
.windows => ws2_32.SOCK,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const STREAM = 1;
|
pub const STREAM = 1;
|
||||||
pub const DGRAM = 2;
|
pub const DGRAM = 2;
|
||||||
pub const RAW = 3;
|
pub const RAW = 3;
|
||||||
@ -5897,7 +5901,7 @@ pub const SOCK = switch (native_os) {
|
|||||||
else => void,
|
else => void,
|
||||||
};
|
};
|
||||||
pub const TCP = switch (native_os) {
|
pub const TCP = switch (native_os) {
|
||||||
.macos => darwin.TCP,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.TCP,
|
||||||
.linux => linux.TCP,
|
.linux => linux.TCP,
|
||||||
.emscripten => emscripten.TCP,
|
.emscripten => emscripten.TCP,
|
||||||
.windows => ws2_32.TCP,
|
.windows => ws2_32.TCP,
|
||||||
@ -5911,7 +5915,7 @@ pub const TCP = switch (native_os) {
|
|||||||
pub const IPPROTO = switch (native_os) {
|
pub const IPPROTO = switch (native_os) {
|
||||||
.linux, .emscripten => linux.IPPROTO,
|
.linux, .emscripten => linux.IPPROTO,
|
||||||
.windows => ws2_32.IPPROTO,
|
.windows => ws2_32.IPPROTO,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const ICMP = 1;
|
pub const ICMP = 1;
|
||||||
pub const ICMPV6 = 58;
|
pub const ICMPV6 = 58;
|
||||||
pub const TCP = 6;
|
pub const TCP = 6;
|
||||||
@ -6543,7 +6547,7 @@ pub const SOL = switch (native_os) {
|
|||||||
.linux => linux.SOL,
|
.linux => linux.SOL,
|
||||||
.emscripten => emscripten.SOL,
|
.emscripten => emscripten.SOL,
|
||||||
.windows => ws2_32.SOL,
|
.windows => ws2_32.SOL,
|
||||||
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => struct {
|
.openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const SOCKET = 0xffff;
|
pub const SOCKET = 0xffff;
|
||||||
},
|
},
|
||||||
.illumos => struct {
|
.illumos => struct {
|
||||||
@ -6562,7 +6566,7 @@ pub const SO = switch (native_os) {
|
|||||||
.linux => linux.SO,
|
.linux => linux.SO,
|
||||||
.emscripten => emscripten.SO,
|
.emscripten => emscripten.SO,
|
||||||
.windows => ws2_32.SO,
|
.windows => ws2_32.SO,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const DEBUG = 0x0001;
|
pub const DEBUG = 0x0001;
|
||||||
pub const ACCEPTCONN = 0x0002;
|
pub const ACCEPTCONN = 0x0002;
|
||||||
pub const REUSEADDR = 0x0004;
|
pub const REUSEADDR = 0x0004;
|
||||||
@ -6807,7 +6811,7 @@ pub const SOMAXCONN = switch (native_os) {
|
|||||||
// https://github.com/NetBSD/src/blob/a673fb3f8487e974c669216064f7588207229fea/sys/sys/socket.h#L472
|
// https://github.com/NetBSD/src/blob/a673fb3f8487e974c669216064f7588207229fea/sys/sys/socket.h#L472
|
||||||
// https://github.com/openbsd/src/blob/8ba9cd88f10123fef7af805b8e5ccc2463ad8fa4/sys/sys/socket.h#L483
|
// https://github.com/openbsd/src/blob/8ba9cd88f10123fef7af805b8e5ccc2463ad8fa4/sys/sys/socket.h#L483
|
||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L815
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L815
|
||||||
.freebsd, .dragonfly, .netbsd, .openbsd, .driverkit, .macos, .ios, .tvos, .watchos, .visionos => 128,
|
.freebsd, .dragonfly, .netbsd, .openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 128,
|
||||||
else => void,
|
else => void,
|
||||||
};
|
};
|
||||||
pub const SCM = switch (native_os) {
|
pub const SCM = switch (native_os) {
|
||||||
@ -6856,7 +6860,7 @@ pub const SCM = switch (native_os) {
|
|||||||
pub const TIMESTAMP = 0x04;
|
pub const TIMESTAMP = 0x04;
|
||||||
},
|
},
|
||||||
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L1114
|
// https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/socket.h#L1114
|
||||||
.driverkit, .macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const RIGHTS = 1;
|
pub const RIGHTS = 1;
|
||||||
pub const TIMESTAMP = 2;
|
pub const TIMESTAMP = 2;
|
||||||
pub const CREDS = 3;
|
pub const CREDS = 3;
|
||||||
@ -6870,7 +6874,7 @@ pub const IFNAMESIZE = switch (native_os) {
|
|||||||
.emscripten => emscripten.IFNAMESIZE,
|
.emscripten => emscripten.IFNAMESIZE,
|
||||||
.windows => 30,
|
.windows => 30,
|
||||||
// https://github.com/SerenityOS/serenity/blob/9882848e0bf783dfc8e8a6d887a848d70d9c58f4/Kernel/API/POSIX/net/if.h#L50
|
// https://github.com/SerenityOS/serenity/blob/9882848e0bf783dfc8e8a6d887a848d70d9c58f4/Kernel/API/POSIX/net/if.h#L50
|
||||||
.openbsd, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 16,
|
.openbsd, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => 16,
|
||||||
.illumos => 32,
|
.illumos => 32,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
@ -6921,7 +6925,7 @@ pub const timeval = switch (native_os) {
|
|||||||
sec: c_long,
|
sec: c_long,
|
||||||
usec: c_long,
|
usec: c_long,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sec: c_long,
|
sec: c_long,
|
||||||
usec: i32,
|
usec: i32,
|
||||||
},
|
},
|
||||||
@ -6941,7 +6945,7 @@ pub const timeval = switch (native_os) {
|
|||||||
pub const timezone = switch (native_os) {
|
pub const timezone = switch (native_os) {
|
||||||
.linux => linux.timezone,
|
.linux => linux.timezone,
|
||||||
.emscripten => emscripten.timezone,
|
.emscripten => emscripten.timezone,
|
||||||
.openbsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
minuteswest: i32,
|
minuteswest: i32,
|
||||||
dsttime: i32,
|
dsttime: i32,
|
||||||
},
|
},
|
||||||
@ -6968,7 +6972,7 @@ pub const utsname = switch (native_os) {
|
|||||||
machine: [256:0]u8,
|
machine: [256:0]u8,
|
||||||
domainname: [256:0]u8,
|
domainname: [256:0]u8,
|
||||||
},
|
},
|
||||||
.macos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sysname: [255:0]u8,
|
sysname: [255:0]u8,
|
||||||
nodename: [255:0]u8,
|
nodename: [255:0]u8,
|
||||||
release: [255:0]u8,
|
release: [255:0]u8,
|
||||||
@ -6999,7 +7003,7 @@ pub const _errno = switch (native_os) {
|
|||||||
.emscripten => private.__errno_location,
|
.emscripten => private.__errno_location,
|
||||||
.wasi, .dragonfly => private.errnoFromThreadLocal,
|
.wasi, .dragonfly => private.errnoFromThreadLocal,
|
||||||
.windows => private._errno,
|
.windows => private._errno,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos, .freebsd => private.__error,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd => private.__error,
|
||||||
.illumos => private.___errno,
|
.illumos => private.___errno,
|
||||||
.openbsd, .netbsd => private.__errno,
|
.openbsd, .netbsd => private.__errno,
|
||||||
.haiku => haiku._errnop,
|
.haiku => haiku._errnop,
|
||||||
@ -7070,7 +7074,7 @@ pub const RTLD = switch (native_os) {
|
|||||||
TRACE: bool = false,
|
TRACE: bool = false,
|
||||||
_: u22 = 0,
|
_: u22 = 0,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u32) {
|
||||||
LAZY: bool = false,
|
LAZY: bool = false,
|
||||||
NOW: bool = false,
|
NOW: bool = false,
|
||||||
LOCAL: bool = false,
|
LOCAL: bool = false,
|
||||||
@ -7102,7 +7106,7 @@ pub const dirent = switch (native_os) {
|
|||||||
type: u8,
|
type: u8,
|
||||||
name: [256]u8,
|
name: [256]u8,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
ino: u64,
|
ino: u64,
|
||||||
seekoff: u64,
|
seekoff: u64,
|
||||||
reclen: u16,
|
reclen: u16,
|
||||||
@ -7246,7 +7250,7 @@ pub const AI = if (builtin.abi.isAndroid()) packed struct(u32) {
|
|||||||
ADDRCONFIG: bool = false,
|
ADDRCONFIG: bool = false,
|
||||||
_: u25 = 0,
|
_: u25 = 0,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u32) {
|
||||||
PASSIVE: bool = false,
|
PASSIVE: bool = false,
|
||||||
CANONNAME: bool = false,
|
CANONNAME: bool = false,
|
||||||
NUMERICHOST: bool = false,
|
NUMERICHOST: bool = false,
|
||||||
@ -7363,7 +7367,7 @@ pub const EAI = if (builtin.abi.isAndroid()) enum(c_int) {
|
|||||||
|
|
||||||
_,
|
_,
|
||||||
},
|
},
|
||||||
.haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => enum(c_int) {
|
.haiku, .dragonfly, .netbsd, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => enum(c_int) {
|
||||||
/// address family for hostname not supported
|
/// address family for hostname not supported
|
||||||
ADDRFAMILY = 1,
|
ADDRFAMILY = 1,
|
||||||
/// temporary failure in name resolution
|
/// temporary failure in name resolution
|
||||||
@ -7697,7 +7701,7 @@ pub const Stat = switch (native_os) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
dev: i32,
|
dev: i32,
|
||||||
mode: u16,
|
mode: u16,
|
||||||
nlink: u16,
|
nlink: u16,
|
||||||
@ -7940,7 +7944,7 @@ pub const pthread_mutex_t = switch (native_os) {
|
|||||||
else => @compileError("unsupported ABI"),
|
else => @compileError("unsupported ABI"),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sig: c_long = 0x32AAABA7,
|
sig: c_long = 0x32AAABA7,
|
||||||
data: [data_len]u8 = [_]u8{0} ** data_len,
|
data: [data_len]u8 = [_]u8{0} ** data_len,
|
||||||
|
|
||||||
@ -7997,7 +8001,7 @@ pub const pthread_cond_t = switch (native_os) {
|
|||||||
.linux => extern struct {
|
.linux => extern struct {
|
||||||
data: [48]u8 align(@alignOf(usize)) = [_]u8{0} ** 48,
|
data: [48]u8 align(@alignOf(usize)) = [_]u8{0} ** 48,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sig: c_long = 0x3CB0B1BB,
|
sig: c_long = 0x3CB0B1BB,
|
||||||
data: [data_len]u8 = [_]u8{0} ** data_len,
|
data: [data_len]u8 = [_]u8{0} ** data_len,
|
||||||
const data_len = if (@sizeOf(usize) == 8) 40 else 24;
|
const data_len = if (@sizeOf(usize) == 8) 40 else 24;
|
||||||
@ -8056,7 +8060,7 @@ pub const pthread_rwlock_t = switch (native_os) {
|
|||||||
data: [56]u8 align(@alignOf(usize)) = [_]u8{0} ** 56,
|
data: [56]u8 align(@alignOf(usize)) = [_]u8{0} ** 56,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
sig: c_long = 0x2DA8B3B4,
|
sig: c_long = 0x2DA8B3B4,
|
||||||
data: [192]u8 = [_]u8{0} ** 192,
|
data: [192]u8 = [_]u8{0} ** 192,
|
||||||
},
|
},
|
||||||
@ -8108,7 +8112,7 @@ pub const pthread_attr_t = switch (native_os) {
|
|||||||
__size: [56]u8,
|
__size: [56]u8,
|
||||||
__align: c_long,
|
__align: c_long,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
__sig: c_long,
|
__sig: c_long,
|
||||||
__opaque: [56]u8,
|
__opaque: [56]u8,
|
||||||
},
|
},
|
||||||
@ -8136,7 +8140,7 @@ pub const pthread_attr_t = switch (native_os) {
|
|||||||
|
|
||||||
pub const pthread_key_t = switch (native_os) {
|
pub const pthread_key_t = switch (native_os) {
|
||||||
.linux, .emscripten => c_uint,
|
.linux, .emscripten => c_uint,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => c_ulong,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => c_ulong,
|
||||||
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L65
|
// https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L65
|
||||||
.openbsd, .illumos, .serenity => c_int,
|
.openbsd, .illumos, .serenity => c_int,
|
||||||
else => void,
|
else => void,
|
||||||
@ -8169,7 +8173,7 @@ pub const sem_t = switch (native_os) {
|
|||||||
.linux, .emscripten => extern struct {
|
.linux, .emscripten => extern struct {
|
||||||
__size: [4 * @sizeOf(usize)]u8 align(@alignOf(usize)),
|
__size: [4 * @sizeOf(usize)]u8 align(@alignOf(usize)),
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => c_int,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => c_int,
|
||||||
.freebsd => extern struct {
|
.freebsd => extern struct {
|
||||||
_magic: u32,
|
_magic: u32,
|
||||||
_kern: extern struct {
|
_kern: extern struct {
|
||||||
@ -8213,7 +8217,7 @@ pub const Kevent = switch (native_os) {
|
|||||||
data: i64,
|
data: i64,
|
||||||
udata: usize,
|
udata: usize,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
ident: usize,
|
ident: usize,
|
||||||
filter: i16,
|
filter: i16,
|
||||||
flags: u16,
|
flags: u16,
|
||||||
@ -8293,7 +8297,7 @@ pub const AT = switch (native_os) {
|
|||||||
/// Remove directory instead of unlinking file
|
/// Remove directory instead of unlinking file
|
||||||
pub const REMOVEDIR = 0x200;
|
pub const REMOVEDIR = 0x200;
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const FDCWD = -2;
|
pub const FDCWD = -2;
|
||||||
/// Use effective ids in access check
|
/// Use effective ids in access check
|
||||||
pub const EACCESS = 0x0010;
|
pub const EACCESS = 0x0010;
|
||||||
@ -8548,7 +8552,7 @@ pub const O = switch (native_os) {
|
|||||||
DIRECTORY: bool = false,
|
DIRECTORY: bool = false,
|
||||||
_: u10 = 0,
|
_: u10 = 0,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u32) {
|
||||||
ACCMODE: std.posix.ACCMODE = .RDONLY,
|
ACCMODE: std.posix.ACCMODE = .RDONLY,
|
||||||
NONBLOCK: bool = false,
|
NONBLOCK: bool = false,
|
||||||
APPEND: bool = false,
|
APPEND: bool = false,
|
||||||
@ -8727,7 +8731,7 @@ pub const MAP = switch (native_os) {
|
|||||||
NORESERVE: bool = false,
|
NORESERVE: bool = false,
|
||||||
_: u27 = 0,
|
_: u27 = 0,
|
||||||
},
|
},
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u32) {
|
||||||
TYPE: enum(u4) {
|
TYPE: enum(u4) {
|
||||||
SHARED = 0x01,
|
SHARED = 0x01,
|
||||||
PRIVATE = 0x02,
|
PRIVATE = 0x02,
|
||||||
@ -8812,7 +8816,7 @@ pub const cc_t = u8;
|
|||||||
/// Indices into the `cc` array in the `termios` struct.
|
/// Indices into the `cc` array in the `termios` struct.
|
||||||
pub const V = switch (native_os) {
|
pub const V = switch (native_os) {
|
||||||
.linux => linux.V,
|
.linux => linux.V,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos, .netbsd, .openbsd => enum {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .netbsd, .openbsd => enum {
|
||||||
EOF,
|
EOF,
|
||||||
EOL,
|
EOL,
|
||||||
EOL2,
|
EOL2,
|
||||||
@ -8932,7 +8936,7 @@ pub const V = switch (native_os) {
|
|||||||
|
|
||||||
pub const NCCS = switch (native_os) {
|
pub const NCCS = switch (native_os) {
|
||||||
.linux => linux.NCCS,
|
.linux => linux.NCCS,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos, .freebsd, .netbsd, .openbsd, .dragonfly => 20,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .netbsd, .openbsd, .dragonfly => 20,
|
||||||
.haiku => 11,
|
.haiku => 11,
|
||||||
.illumos => 19,
|
.illumos => 19,
|
||||||
// https://github.com/SerenityOS/serenity/blob/d277cdfd4c7ed21d5248a83217ae03b9f890c3c8/Kernel/API/POSIX/termios.h#L15
|
// https://github.com/SerenityOS/serenity/blob/d277cdfd4c7ed21d5248a83217ae03b9f890c3c8/Kernel/API/POSIX/termios.h#L15
|
||||||
@ -8942,7 +8946,7 @@ pub const NCCS = switch (native_os) {
|
|||||||
|
|
||||||
pub const termios = switch (native_os) {
|
pub const termios = switch (native_os) {
|
||||||
.linux => linux.termios,
|
.linux => linux.termios,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
iflag: tc_iflag_t,
|
iflag: tc_iflag_t,
|
||||||
oflag: tc_oflag_t,
|
oflag: tc_oflag_t,
|
||||||
cflag: tc_cflag_t,
|
cflag: tc_cflag_t,
|
||||||
@ -8993,7 +8997,7 @@ pub const termios = switch (native_os) {
|
|||||||
|
|
||||||
pub const tc_iflag_t = switch (native_os) {
|
pub const tc_iflag_t = switch (native_os) {
|
||||||
.linux => linux.tc_iflag_t,
|
.linux => linux.tc_iflag_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u64) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u64) {
|
||||||
IGNBRK: bool = false,
|
IGNBRK: bool = false,
|
||||||
BRKINT: bool = false,
|
BRKINT: bool = false,
|
||||||
IGNPAR: bool = false,
|
IGNPAR: bool = false,
|
||||||
@ -9104,7 +9108,7 @@ pub const tc_iflag_t = switch (native_os) {
|
|||||||
|
|
||||||
pub const tc_oflag_t = switch (native_os) {
|
pub const tc_oflag_t = switch (native_os) {
|
||||||
.linux => linux.tc_oflag_t,
|
.linux => linux.tc_oflag_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u64) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u64) {
|
||||||
OPOST: bool = false,
|
OPOST: bool = false,
|
||||||
ONLCR: bool = false,
|
ONLCR: bool = false,
|
||||||
OXTABS: bool = false,
|
OXTABS: bool = false,
|
||||||
@ -9202,7 +9206,7 @@ pub const CSIZE = switch (native_os) {
|
|||||||
|
|
||||||
pub const tc_cflag_t = switch (native_os) {
|
pub const tc_cflag_t = switch (native_os) {
|
||||||
.linux => linux.tc_cflag_t,
|
.linux => linux.tc_cflag_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u64) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u64) {
|
||||||
CIGNORE: bool = false,
|
CIGNORE: bool = false,
|
||||||
_1: u5 = 0,
|
_1: u5 = 0,
|
||||||
CSTOPB: bool = false,
|
CSTOPB: bool = false,
|
||||||
@ -9351,7 +9355,7 @@ pub const tc_cflag_t = switch (native_os) {
|
|||||||
|
|
||||||
pub const tc_lflag_t = switch (native_os) {
|
pub const tc_lflag_t = switch (native_os) {
|
||||||
.linux => linux.tc_lflag_t,
|
.linux => linux.tc_lflag_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u64) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u64) {
|
||||||
ECHOKE: bool = false,
|
ECHOKE: bool = false,
|
||||||
ECHOE: bool = false,
|
ECHOE: bool = false,
|
||||||
ECHOK: bool = false,
|
ECHOK: bool = false,
|
||||||
@ -9498,7 +9502,7 @@ pub const tc_lflag_t = switch (native_os) {
|
|||||||
|
|
||||||
pub const speed_t = switch (native_os) {
|
pub const speed_t = switch (native_os) {
|
||||||
.linux => linux.speed_t,
|
.linux => linux.speed_t,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos, .openbsd => enum(u64) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .openbsd => enum(u64) {
|
||||||
B0 = 0,
|
B0 = 0,
|
||||||
B50 = 50,
|
B50 = 50,
|
||||||
B75 = 75,
|
B75 = 75,
|
||||||
@ -9693,7 +9697,7 @@ pub const NSIG = switch (native_os) {
|
|||||||
.windows => 23,
|
.windows => 23,
|
||||||
.haiku => 65,
|
.haiku => 65,
|
||||||
.netbsd, .freebsd => 32,
|
.netbsd, .freebsd => 32,
|
||||||
.macos => darwin.NSIG,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.NSIG,
|
||||||
.illumos => 75,
|
.illumos => 75,
|
||||||
// https://github.com/SerenityOS/serenity/blob/046c23f567a17758d762a33bdf04bacbfd088f9f/Kernel/API/POSIX/signal_numbers.h#L42
|
// https://github.com/SerenityOS/serenity/blob/046c23f567a17758d762a33bdf04bacbfd088f9f/Kernel/API/POSIX/signal_numbers.h#L42
|
||||||
.openbsd, .serenity => 33,
|
.openbsd, .serenity => 33,
|
||||||
@ -9701,7 +9705,7 @@ pub const NSIG = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const MINSIGSTKSZ = switch (native_os) {
|
pub const MINSIGSTKSZ = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => 32768,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 32768,
|
||||||
.freebsd => switch (builtin.cpu.arch) {
|
.freebsd => switch (builtin.cpu.arch) {
|
||||||
.powerpc64, .powerpc64le, .x86, .x86_64 => 2048,
|
.powerpc64, .powerpc64le, .x86, .x86_64 => 2048,
|
||||||
.arm, .aarch64, .riscv64 => 4096,
|
.arm, .aarch64, .riscv64 => 4096,
|
||||||
@ -9715,7 +9719,7 @@ pub const MINSIGSTKSZ = switch (native_os) {
|
|||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const SIGSTKSZ = switch (native_os) {
|
pub const SIGSTKSZ = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => 131072,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => 131072,
|
||||||
.netbsd, .freebsd => MINSIGSTKSZ + 32768,
|
.netbsd, .freebsd => MINSIGSTKSZ + 32768,
|
||||||
.illumos => 8192,
|
.illumos => 8192,
|
||||||
.haiku => 16384,
|
.haiku => 16384,
|
||||||
@ -9726,7 +9730,7 @@ pub const SIGSTKSZ = switch (native_os) {
|
|||||||
};
|
};
|
||||||
pub const SS = switch (native_os) {
|
pub const SS = switch (native_os) {
|
||||||
.linux => linux.SS,
|
.linux => linux.SS,
|
||||||
.openbsd, .macos, .ios, .tvos, .watchos, .visionos, .netbsd, .freebsd => struct {
|
.openbsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .netbsd, .freebsd => struct {
|
||||||
pub const ONSTACK = 1;
|
pub const ONSTACK = 1;
|
||||||
pub const DISABLE = 4;
|
pub const DISABLE = 4;
|
||||||
},
|
},
|
||||||
@ -9739,7 +9743,7 @@ pub const SS = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const EV = switch (native_os) {
|
pub const EV = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// add event to kq (implies enable)
|
/// add event to kq (implies enable)
|
||||||
pub const ADD = 0x0001;
|
pub const ADD = 0x0001;
|
||||||
/// delete event from kq
|
/// delete event from kq
|
||||||
@ -9879,7 +9883,7 @@ pub const EV = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const EVFILT = switch (native_os) {
|
pub const EVFILT = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
pub const READ = -1;
|
pub const READ = -1;
|
||||||
pub const WRITE = -2;
|
pub const WRITE = -2;
|
||||||
/// attached to aio requests
|
/// attached to aio requests
|
||||||
@ -10002,7 +10006,7 @@ pub const EVFILT = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const NOTE = switch (native_os) {
|
pub const NOTE = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => struct {
|
||||||
/// On input, TRIGGER causes the event to be triggered for output.
|
/// On input, TRIGGER causes the event to be triggered for output.
|
||||||
pub const TRIGGER = 0x01000000;
|
pub const TRIGGER = 0x01000000;
|
||||||
/// ignore input fflags
|
/// ignore input fflags
|
||||||
@ -10293,7 +10297,7 @@ pub extern "c" fn sigwait(set: ?*sigset_t, sig: ?*c_int) c_int;
|
|||||||
pub extern "c" fn alarm(seconds: c_uint) c_uint;
|
pub extern "c" fn alarm(seconds: c_uint) c_uint;
|
||||||
|
|
||||||
pub const close = switch (native_os) {
|
pub const close = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.@"close$NOCANCEL",
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.@"close$NOCANCEL",
|
||||||
else => private.close,
|
else => private.close,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -10308,7 +10312,7 @@ pub const clock_gettime = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const fstat = switch (native_os) {
|
pub const fstat = switch (native_os) {
|
||||||
.macos => switch (native_arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (native_arch) {
|
||||||
.x86_64 => private.@"fstat$INODE64",
|
.x86_64 => private.@"fstat$INODE64",
|
||||||
else => private.fstat,
|
else => private.fstat,
|
||||||
},
|
},
|
||||||
@ -10317,7 +10321,7 @@ pub const fstat = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const fstatat = switch (native_os) {
|
pub const fstatat = switch (native_os) {
|
||||||
.macos => switch (native_arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (native_arch) {
|
||||||
.x86_64 => private.@"fstatat$INODE64",
|
.x86_64 => private.@"fstatat$INODE64",
|
||||||
else => private.fstatat,
|
else => private.fstatat,
|
||||||
},
|
},
|
||||||
@ -10351,7 +10355,7 @@ pub extern "c" fn setrlimit64(resource: rlimit_resource, rlim: *const rlimit) c_
|
|||||||
|
|
||||||
pub const arc4random_buf = switch (native_os) {
|
pub const arc4random_buf = switch (native_os) {
|
||||||
.linux => if (builtin.abi.isAndroid()) private.arc4random_buf else {},
|
.linux => if (builtin.abi.isAndroid()) private.arc4random_buf else {},
|
||||||
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .serenity, .macos, .ios, .tvos, .watchos, .visionos => private.arc4random_buf,
|
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .serenity, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => private.arc4random_buf,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const getentropy = switch (native_os) {
|
pub const getentropy = switch (native_os) {
|
||||||
@ -10404,7 +10408,7 @@ pub extern "c" fn ftruncate64(fd: c_int, length: off_t) c_int;
|
|||||||
pub extern "c" fn fallocate(fd: fd_t, mode: c_int, offset: off_t, len: off_t) c_int;
|
pub extern "c" fn fallocate(fd: fd_t, mode: c_int, offset: off_t, len: off_t) c_int;
|
||||||
pub const sendfile = switch (native_os) {
|
pub const sendfile = switch (native_os) {
|
||||||
.freebsd => freebsd.sendfile,
|
.freebsd => freebsd.sendfile,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.sendfile,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.sendfile,
|
||||||
.linux => private.sendfile,
|
.linux => private.sendfile,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
@ -10445,7 +10449,7 @@ pub extern "c" fn madvise(
|
|||||||
) c_int;
|
) c_int;
|
||||||
|
|
||||||
pub const getdirentries = switch (native_os) {
|
pub const getdirentries = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => private.__getdirentries64,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => private.__getdirentries64,
|
||||||
else => private.getdirentries,
|
else => private.getdirentries,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -10500,7 +10504,7 @@ pub const nanosleep = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const readdir = switch (native_os) {
|
pub const readdir = switch (native_os) {
|
||||||
.macos => switch (native_arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (native_arch) {
|
||||||
.x86_64 => private.@"readdir$INODE64",
|
.x86_64 => private.@"readdir$INODE64",
|
||||||
else => private.readdir,
|
else => private.readdir,
|
||||||
},
|
},
|
||||||
@ -10509,7 +10513,7 @@ pub const readdir = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const realpath = switch (native_os) {
|
pub const realpath = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => private.@"realpath$DARWIN_EXTSN",
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => private.@"realpath$DARWIN_EXTSN",
|
||||||
else => private.realpath,
|
else => private.realpath,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -10573,7 +10577,7 @@ pub const socketpair = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const stat = switch (native_os) {
|
pub const stat = switch (native_os) {
|
||||||
.macos => switch (native_arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (native_arch) {
|
||||||
.x86_64 => private.@"stat$INODE64",
|
.x86_64 => private.@"stat$INODE64",
|
||||||
else => private.stat,
|
else => private.stat,
|
||||||
},
|
},
|
||||||
@ -10585,7 +10589,7 @@ pub const _msize = switch (native_os) {
|
|||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const malloc_size = switch (native_os) {
|
pub const malloc_size = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos, .serenity => private.malloc_size,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => private.malloc_size,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const malloc_usable_size = switch (native_os) {
|
pub const malloc_usable_size = switch (native_os) {
|
||||||
@ -10593,7 +10597,7 @@ pub const malloc_usable_size = switch (native_os) {
|
|||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const posix_memalign = switch (native_os) {
|
pub const posix_memalign = switch (native_os) {
|
||||||
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => private.posix_memalign,
|
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => private.posix_memalign,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
pub const sysconf = switch (native_os) {
|
pub const sysconf = switch (native_os) {
|
||||||
@ -10602,7 +10606,7 @@ pub const sysconf = switch (native_os) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const sf_hdtr = switch (native_os) {
|
pub const sf_hdtr = switch (native_os) {
|
||||||
.freebsd, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
|
||||||
headers: ?[*]const iovec_const,
|
headers: ?[*]const iovec_const,
|
||||||
hdr_cnt: c_int,
|
hdr_cnt: c_int,
|
||||||
trailers: ?[*]const iovec_const,
|
trailers: ?[*]const iovec_const,
|
||||||
@ -10661,15 +10665,17 @@ pub extern "c" fn wait4(pid: pid_t, status: ?*c_int, options: c_int, ru: ?*rusag
|
|||||||
pub const fork = switch (native_os) {
|
pub const fork = switch (native_os) {
|
||||||
.dragonfly,
|
.dragonfly,
|
||||||
.freebsd,
|
.freebsd,
|
||||||
.ios,
|
|
||||||
.linux,
|
.linux,
|
||||||
|
.driverkit,
|
||||||
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
|
.tvos,
|
||||||
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.netbsd,
|
.netbsd,
|
||||||
.openbsd,
|
.openbsd,
|
||||||
.illumos,
|
.illumos,
|
||||||
.tvos,
|
|
||||||
.watchos,
|
|
||||||
.visionos,
|
|
||||||
.haiku,
|
.haiku,
|
||||||
.serenity,
|
.serenity,
|
||||||
=> private.fork,
|
=> private.fork,
|
||||||
@ -10813,7 +10819,7 @@ pub extern "c" fn pthread_getspecific(key: pthread_key_t) ?*anyopaque;
|
|||||||
pub extern "c" fn pthread_setspecific(key: pthread_key_t, value: ?*anyopaque) c_int;
|
pub extern "c" fn pthread_setspecific(key: pthread_key_t, value: ?*anyopaque) c_int;
|
||||||
pub extern "c" fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *sigset_t) c_int;
|
pub extern "c" fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *sigset_t) c_int;
|
||||||
pub const pthread_setname_np = switch (native_os) {
|
pub const pthread_setname_np = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.pthread_setname_np,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.pthread_setname_np,
|
||||||
.illumos => illumos.pthread_setname_np,
|
.illumos => illumos.pthread_setname_np,
|
||||||
.netbsd => netbsd.pthread_setname_np,
|
.netbsd => netbsd.pthread_setname_np,
|
||||||
else => private.pthread_setname_np,
|
else => private.pthread_setname_np,
|
||||||
@ -10823,7 +10829,7 @@ pub extern "c" fn pthread_getname_np(thread: pthread_t, name: [*:0]u8, len: usiz
|
|||||||
pub extern "c" fn pthread_kill(pthread_t, signal: SIG) c_int;
|
pub extern "c" fn pthread_kill(pthread_t, signal: SIG) c_int;
|
||||||
|
|
||||||
pub const pthread_threadid_np = switch (native_os) {
|
pub const pthread_threadid_np = switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => private.pthread_threadid_np,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => private.pthread_threadid_np,
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -10831,7 +10837,7 @@ pub const caddr_t = ?[*]u8;
|
|||||||
|
|
||||||
pub const ptrace = switch (native_os) {
|
pub const ptrace = switch (native_os) {
|
||||||
.linux, .serenity => private.ptrace,
|
.linux, .serenity => private.ptrace,
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => darwin.ptrace,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.ptrace,
|
||||||
.dragonfly => dragonfly.ptrace,
|
.dragonfly => dragonfly.ptrace,
|
||||||
.freebsd => freebsd.ptrace,
|
.freebsd => freebsd.ptrace,
|
||||||
.netbsd => netbsd.ptrace,
|
.netbsd => netbsd.ptrace,
|
||||||
@ -10850,7 +10856,7 @@ pub extern "c" fn sem_timedwait(sem: *sem_t, abs_timeout: *const timespec) c_int
|
|||||||
pub extern "c" fn sem_getvalue(sem: *sem_t, sval: *c_int) c_int;
|
pub extern "c" fn sem_getvalue(sem: *sem_t, sval: *c_int) c_int;
|
||||||
|
|
||||||
pub const shm_open = switch (native_os) {
|
pub const shm_open = switch (native_os) {
|
||||||
.driverkit, .macos, .ios, .tvos, .watchos, .visionos => darwin.shm_open,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => darwin.shm_open,
|
||||||
else => private.shm_open,
|
else => private.shm_open,
|
||||||
};
|
};
|
||||||
pub extern "c" fn shm_unlink(name: [*:0]const u8) c_int;
|
pub extern "c" fn shm_unlink(name: [*:0]const u8) c_int;
|
||||||
|
|||||||
@ -73,7 +73,7 @@ pub const RescanError = RescanLinuxError || RescanMacError || RescanWithPathErro
|
|||||||
pub fn rescan(cb: *Bundle, gpa: Allocator, io: Io, now: Io.Timestamp) RescanError!void {
|
pub fn rescan(cb: *Bundle, gpa: Allocator, io: Io, now: Io.Timestamp) RescanError!void {
|
||||||
switch (builtin.os.tag) {
|
switch (builtin.os.tag) {
|
||||||
.linux => return rescanLinux(cb, gpa, io, now),
|
.linux => return rescanLinux(cb, gpa, io, now),
|
||||||
.macos => return rescanMac(cb, gpa, io, now),
|
.maccatalyst, .macos => return rescanMac(cb, gpa, io, now),
|
||||||
.freebsd, .openbsd => return rescanWithPath(cb, gpa, io, now, "/etc/ssl/cert.pem"),
|
.freebsd, .openbsd => return rescanWithPath(cb, gpa, io, now, "/etc/ssl/cert.pem"),
|
||||||
.netbsd => return rescanWithPath(cb, gpa, io, now, "/etc/openssl/certs/ca-certificates.crt"),
|
.netbsd => return rescanWithPath(cb, gpa, io, now, "/etc/openssl/certs/ca-certificates.crt"),
|
||||||
.dragonfly => return rescanWithPath(cb, gpa, io, now, "/usr/local/etc/ssl/cert.pem"),
|
.dragonfly => return rescanWithPath(cb, gpa, io, now, "/usr/local/etc/ssl/cert.pem"),
|
||||||
|
|||||||
@ -1392,6 +1392,7 @@ pub const have_segfault_handling_support = switch (native_os) {
|
|||||||
|
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -1487,6 +1488,7 @@ fn handleSegfaultPosix(sig: posix.SIG, info: *const posix.siginfo_t, ctx_ptr: ?*
|
|||||||
.freebsd,
|
.freebsd,
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
|
|||||||
@ -2131,7 +2131,7 @@ const signal_ucontext_t = switch (native_os) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
// https://github.com/ziglang/zig/blob/60be67d3c0ba6ae15fa7115596734ab1e74fbcd3/lib/libc/include/any-macos-any/sys/_types/_ucontext.h
|
// https://github.com/ziglang/zig/blob/60be67d3c0ba6ae15fa7115596734ab1e74fbcd3/lib/libc/include/any-macos-any/sys/_types/_ucontext.h
|
||||||
.driverkit, .macos, .ios, .tvos, .watchos, .visionos => extern struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .watchos, .visionos => extern struct {
|
||||||
_onstack: i32,
|
_onstack: i32,
|
||||||
_sigmask: std.c.sigset_t,
|
_sigmask: std.c.sigset_t,
|
||||||
_stack: std.c.stack_t,
|
_stack: std.c.stack_t,
|
||||||
|
|||||||
@ -16,7 +16,7 @@ pub const DynLib = struct {
|
|||||||
else
|
else
|
||||||
DlDynLib,
|
DlDynLib,
|
||||||
.windows => WindowsDynLib,
|
.windows => WindowsDynLib,
|
||||||
.macos, .tvos, .watchos, .ios, .visionos, .freebsd, .netbsd, .openbsd, .dragonfly, .illumos => DlDynLib,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .netbsd, .openbsd, .dragonfly, .illumos => DlDynLib,
|
||||||
else => struct {
|
else => struct {
|
||||||
const open = @compileError("unsupported platform");
|
const open = @compileError("unsupported platform");
|
||||||
const openZ = @compileError("unsupported platform");
|
const openZ = @compileError("unsupported platform");
|
||||||
@ -675,7 +675,7 @@ test "dynamic_library" {
|
|||||||
const libname = switch (native_os) {
|
const libname = switch (native_os) {
|
||||||
.linux, .freebsd, .openbsd, .illumos => "invalid_so.so",
|
.linux, .freebsd, .openbsd, .illumos => "invalid_so.so",
|
||||||
.windows => "invalid_dll.dll",
|
.windows => "invalid_dll.dll",
|
||||||
.macos, .tvos, .watchos, .ios, .visionos => "invalid_dylib.dylib",
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => "invalid_dylib.dylib",
|
||||||
else => return error.SkipZigTest,
|
else => return error.SkipZigTest,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ pub const GetAppDataDirError = @import("fs/get_app_data_dir.zig").GetAppDataDirE
|
|||||||
/// * On other platforms, `[]u8` file paths are opaque sequences of bytes with
|
/// * On other platforms, `[]u8` file paths are opaque sequences of bytes with
|
||||||
/// no particular encoding.
|
/// no particular encoding.
|
||||||
pub const max_path_bytes = switch (native_os) {
|
pub const max_path_bytes = switch (native_os) {
|
||||||
.linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .haiku, .illumos, .plan9, .emscripten, .wasi, .serenity => posix.PATH_MAX,
|
.linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .openbsd, .netbsd, .dragonfly, .haiku, .illumos, .plan9, .emscripten, .wasi, .serenity => posix.PATH_MAX,
|
||||||
// Each WTF-16LE code unit may be expanded to 3 WTF-8 bytes.
|
// Each WTF-16LE code unit may be expanded to 3 WTF-8 bytes.
|
||||||
// If it would require 4 WTF-8 bytes, then there would be a surrogate
|
// If it would require 4 WTF-8 bytes, then there would be a surrogate
|
||||||
// pair in the WTF-16LE, and we (over)account 3 bytes for it that way.
|
// pair in the WTF-16LE, and we (over)account 3 bytes for it that way.
|
||||||
@ -73,7 +73,7 @@ pub const max_path_bytes = switch (native_os) {
|
|||||||
/// On WASI, file name components are encoded as valid UTF-8.
|
/// On WASI, file name components are encoded as valid UTF-8.
|
||||||
/// On other platforms, `[]u8` components are an opaque sequence of bytes with no particular encoding.
|
/// On other platforms, `[]u8` components are an opaque sequence of bytes with no particular encoding.
|
||||||
pub const max_name_bytes = switch (native_os) {
|
pub const max_name_bytes = switch (native_os) {
|
||||||
.linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .illumos, .serenity => posix.NAME_MAX,
|
.linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .openbsd, .netbsd, .dragonfly, .illumos, .serenity => posix.NAME_MAX,
|
||||||
// Haiku's NAME_MAX includes the null terminator, so subtract one.
|
// Haiku's NAME_MAX includes the null terminator, so subtract one.
|
||||||
.haiku => posix.NAME_MAX - 1,
|
.haiku => posix.NAME_MAX - 1,
|
||||||
// Each WTF-16LE character may be expanded to 3 WTF-8 bytes.
|
// Each WTF-16LE character may be expanded to 3 WTF-8 bytes.
|
||||||
|
|||||||
@ -39,7 +39,7 @@ const IteratorError = error{
|
|||||||
} || posix.UnexpectedError;
|
} || posix.UnexpectedError;
|
||||||
|
|
||||||
pub const Iterator = switch (native_os) {
|
pub const Iterator = switch (native_os) {
|
||||||
.macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => struct {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => struct {
|
||||||
dir: Dir,
|
dir: Dir,
|
||||||
seek: i64,
|
seek: i64,
|
||||||
buf: [1024]u8 align(@alignOf(posix.system.dirent)),
|
buf: [1024]u8 align(@alignOf(posix.system.dirent)),
|
||||||
@ -55,7 +55,7 @@ pub const Iterator = switch (native_os) {
|
|||||||
/// with subsequent calls to `next`, as well as when this `Dir` is deinitialized.
|
/// with subsequent calls to `next`, as well as when this `Dir` is deinitialized.
|
||||||
pub fn next(self: *Self) Error!?Entry {
|
pub fn next(self: *Self) Error!?Entry {
|
||||||
switch (native_os) {
|
switch (native_os) {
|
||||||
.macos, .ios => return self.nextDarwin(),
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => return self.nextDarwin(),
|
||||||
.freebsd, .netbsd, .dragonfly, .openbsd => return self.nextBsd(),
|
.freebsd, .netbsd, .dragonfly, .openbsd => return self.nextBsd(),
|
||||||
.illumos => return self.nextIllumos(),
|
.illumos => return self.nextIllumos(),
|
||||||
else => @compileError("unimplemented"),
|
else => @compileError("unimplemented"),
|
||||||
@ -612,8 +612,13 @@ pub fn iterateAssumeFirstIteration(self: Dir) Iterator {
|
|||||||
|
|
||||||
fn iterateImpl(self: Dir, first_iter_start_value: bool) Iterator {
|
fn iterateImpl(self: Dir, first_iter_start_value: bool) Iterator {
|
||||||
switch (native_os) {
|
switch (native_os) {
|
||||||
.macos,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
|
.tvos,
|
||||||
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.freebsd,
|
.freebsd,
|
||||||
.netbsd,
|
.netbsd,
|
||||||
.dragonfly,
|
.dragonfly,
|
||||||
@ -1103,7 +1108,7 @@ pub fn deleteFileZ(self: Dir, sub_path_c: [*:0]const u8) DeleteFileError!void {
|
|||||||
error.AccessDenied, error.PermissionDenied => |e| switch (native_os) {
|
error.AccessDenied, error.PermissionDenied => |e| switch (native_os) {
|
||||||
// non-Linux POSIX systems return permission errors when trying to delete a
|
// non-Linux POSIX systems return permission errors when trying to delete a
|
||||||
// directory, so we need to handle that case specifically and translate the error
|
// directory, so we need to handle that case specifically and translate the error
|
||||||
.macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => {
|
||||||
// Don't follow symlinks to match unlinkat (which acts on symlinks rather than follows them)
|
// Don't follow symlinks to match unlinkat (which acts on symlinks rather than follows them)
|
||||||
const fstat = posix.fstatatZ(self.fd, sub_path_c, posix.AT.SYMLINK_NOFOLLOW) catch return e;
|
const fstat = posix.fstatatZ(self.fd, sub_path_c, posix.AT.SYMLINK_NOFOLLOW) catch return e;
|
||||||
const is_dir = fstat.mode & posix.S.IFMT == posix.S.IFDIR;
|
const is_dir = fstat.mode & posix.S.IFMT == posix.S.IFDIR;
|
||||||
|
|||||||
@ -23,7 +23,7 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi
|
|||||||
defer allocator.free(local_app_data_dir);
|
defer allocator.free(local_app_data_dir);
|
||||||
return fs.path.join(allocator, &[_][]const u8{ local_app_data_dir, appname });
|
return fs.path.join(allocator, &[_][]const u8{ local_app_data_dir, appname });
|
||||||
},
|
},
|
||||||
.macos => {
|
.maccatalyst, .macos => {
|
||||||
const home_dir = posix.getenv("HOME") orelse {
|
const home_dir = posix.getenv("HOME") orelse {
|
||||||
// TODO look in /etc/passwd
|
// TODO look in /etc/passwd
|
||||||
return error.AppDataDirUnavailable;
|
return error.AppDataDirUnavailable;
|
||||||
|
|||||||
@ -83,7 +83,7 @@ pub fn defaultQueryPageSize() usize {
|
|||||||
@max(std.c.sysconf(@intFromEnum(std.c._SC.PAGESIZE)), 0)
|
@max(std.c.sysconf(@intFromEnum(std.c._SC.PAGESIZE)), 0)
|
||||||
else
|
else
|
||||||
std.os.linux.getauxval(std.elf.AT_PAGESZ),
|
std.os.linux.getauxval(std.elf.AT_PAGESZ),
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
const task_port = std.c.mach_task_self();
|
const task_port = std.c.mach_task_self();
|
||||||
// mach_task_self may fail "if there are any resource failures or other errors".
|
// mach_task_self may fail "if there are any resource failures or other errors".
|
||||||
if (task_port == std.c.TASK.NULL) break :size 0;
|
if (task_port == std.c.TASK.NULL) break :size 0;
|
||||||
@ -155,7 +155,7 @@ const CAllocator = struct {
|
|||||||
else {};
|
else {};
|
||||||
|
|
||||||
pub const supports_posix_memalign = switch (builtin.os.tag) {
|
pub const supports_posix_memalign = switch (builtin.os.tag) {
|
||||||
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => true,
|
.dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .serenity => true,
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -703,7 +703,7 @@ pub fn testAllocatorAlignedShrink(base_allocator: mem.Allocator) !void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const page_size_min_default: ?usize = switch (builtin.os.tag) {
|
const page_size_min_default: ?usize = switch (builtin.os.tag) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
||||||
.x86_64 => 4 << 10,
|
.x86_64 => 4 << 10,
|
||||||
.aarch64 => 16 << 10,
|
.aarch64 => 16 << 10,
|
||||||
else => null,
|
else => null,
|
||||||
@ -862,7 +862,7 @@ const page_size_min_default: ?usize = switch (builtin.os.tag) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const page_size_max_default: ?usize = switch (builtin.os.tag) {
|
const page_size_max_default: ?usize = switch (builtin.os.tag) {
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (builtin.cpu.arch) {
|
||||||
.x86_64 => 4 << 10,
|
.x86_64 => 4 << 10,
|
||||||
.aarch64 => 16 << 10,
|
.aarch64 => 16 << 10,
|
||||||
else => null,
|
else => null,
|
||||||
|
|||||||
@ -85,7 +85,7 @@ fn ModfTests(comptime T: type) type {
|
|||||||
try expectApproxEqAbs(expected_c, r.fpart, epsilon);
|
try expectApproxEqAbs(expected_c, r.fpart, epsilon);
|
||||||
}
|
}
|
||||||
test "vector" {
|
test "vector" {
|
||||||
if (builtin.os.tag == .macos and builtin.cpu.arch == .aarch64) return error.SkipZigTest;
|
if (builtin.os.tag.isDarwin() and builtin.cpu.arch == .aarch64) return error.SkipZigTest;
|
||||||
if (builtin.cpu.arch == .s390x) return error.SkipZigTest;
|
if (builtin.cpu.arch == .s390x) return error.SkipZigTest;
|
||||||
if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest; // https://github.com/llvm/llvm-project/issues/159529
|
if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest; // https://github.com/llvm/llvm-project/issues/159529
|
||||||
|
|
||||||
|
|||||||
@ -74,11 +74,13 @@ pub fn accessW(path: [*:0]const u16) windows.GetFileAttributesError!void {
|
|||||||
pub fn isGetFdPathSupportedOnTarget(os: std.Target.Os) bool {
|
pub fn isGetFdPathSupportedOnTarget(os: std.Target.Os) bool {
|
||||||
return switch (os.tag) {
|
return switch (os.tag) {
|
||||||
.windows,
|
.windows,
|
||||||
.macos,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
.watchos,
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.linux,
|
.linux,
|
||||||
.illumos,
|
.illumos,
|
||||||
.freebsd,
|
.freebsd,
|
||||||
@ -113,7 +115,7 @@ pub fn getFdPath(fd: std.posix.fd_t, out_buffer: *[max_path_bytes]u8) std.posix.
|
|||||||
const end_index = std.unicode.wtf16LeToWtf8(out_buffer, wide_slice);
|
const end_index = std.unicode.wtf16LeToWtf8(out_buffer, wide_slice);
|
||||||
return out_buffer[0..end_index];
|
return out_buffer[0..end_index];
|
||||||
},
|
},
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
// On macOS, we can use F.GETPATH fcntl command to query the OS for
|
// On macOS, we can use F.GETPATH fcntl command to query the OS for
|
||||||
// the path to the file descriptor.
|
// the path to the file descriptor.
|
||||||
@memset(out_buffer[0..max_path_bytes], 0);
|
@memset(out_buffer[0..max_path_bytes], 0);
|
||||||
|
|||||||
@ -861,7 +861,7 @@ pub fn read(fd: fd_t, buf: []u8) ReadError!usize {
|
|||||||
// Prevents EINVAL.
|
// Prevents EINVAL.
|
||||||
const max_count = switch (native_os) {
|
const max_count = switch (native_os) {
|
||||||
.linux => 0x7ffff000,
|
.linux => 0x7ffff000,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => maxInt(i32),
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => maxInt(i32),
|
||||||
else => maxInt(isize),
|
else => maxInt(isize),
|
||||||
};
|
};
|
||||||
while (true) {
|
while (true) {
|
||||||
@ -1002,7 +1002,7 @@ pub fn pread(fd: fd_t, buf: []u8, offset: u64) PReadError!usize {
|
|||||||
// Prevent EINVAL.
|
// Prevent EINVAL.
|
||||||
const max_count = switch (native_os) {
|
const max_count = switch (native_os) {
|
||||||
.linux => 0x7ffff000,
|
.linux => 0x7ffff000,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => maxInt(i32),
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => maxInt(i32),
|
||||||
else => maxInt(isize),
|
else => maxInt(isize),
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1115,7 +1115,7 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {
|
|||||||
/// On these systems, the read races with concurrent writes to the same file descriptor.
|
/// On these systems, the read races with concurrent writes to the same file descriptor.
|
||||||
pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize {
|
pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize {
|
||||||
const have_pread_but_not_preadv = switch (native_os) {
|
const have_pread_but_not_preadv = switch (native_os) {
|
||||||
.windows, .macos, .ios, .watchos, .tvos, .visionos, .haiku => true,
|
.windows, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .haiku => true,
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
if (have_pread_but_not_preadv) {
|
if (have_pread_but_not_preadv) {
|
||||||
@ -1269,7 +1269,7 @@ pub fn write(fd: fd_t, bytes: []const u8) WriteError!usize {
|
|||||||
|
|
||||||
const max_count = switch (native_os) {
|
const max_count = switch (native_os) {
|
||||||
.linux => 0x7ffff000,
|
.linux => 0x7ffff000,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => maxInt(i32),
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => maxInt(i32),
|
||||||
else => maxInt(isize),
|
else => maxInt(isize),
|
||||||
};
|
};
|
||||||
while (true) {
|
while (true) {
|
||||||
@ -1433,7 +1433,7 @@ pub fn pwrite(fd: fd_t, bytes: []const u8, offset: u64) PWriteError!usize {
|
|||||||
// Prevent EINVAL.
|
// Prevent EINVAL.
|
||||||
const max_count = switch (native_os) {
|
const max_count = switch (native_os) {
|
||||||
.linux => 0x7ffff000,
|
.linux => 0x7ffff000,
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => maxInt(i32),
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => maxInt(i32),
|
||||||
else => maxInt(isize),
|
else => maxInt(isize),
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1487,7 +1487,7 @@ pub fn pwrite(fd: fd_t, bytes: []const u8, offset: u64) PWriteError!usize {
|
|||||||
/// If `iov.len` is larger than `IOV_MAX`, a partial write will occur.
|
/// If `iov.len` is larger than `IOV_MAX`, a partial write will occur.
|
||||||
pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) PWriteError!usize {
|
pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) PWriteError!usize {
|
||||||
const have_pwrite_but_not_pwritev = switch (native_os) {
|
const have_pwrite_but_not_pwritev = switch (native_os) {
|
||||||
.windows, .macos, .ios, .watchos, .tvos, .visionos, .haiku => true,
|
.windows, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos, .haiku => true,
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1747,7 +1747,7 @@ pub fn execveZ(
|
|||||||
.NOTDIR => return error.NotDir,
|
.NOTDIR => return error.NotDir,
|
||||||
.TXTBSY => return error.FileBusy,
|
.TXTBSY => return error.FileBusy,
|
||||||
else => |err| switch (native_os) {
|
else => |err| switch (native_os) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => switch (err) {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (err) {
|
||||||
.BADEXEC => return error.InvalidExe,
|
.BADEXEC => return error.InvalidExe,
|
||||||
.BADARCH => return error.InvalidExe,
|
.BADARCH => return error.InvalidExe,
|
||||||
else => return unexpectedErrno(err),
|
else => return unexpectedErrno(err),
|
||||||
@ -6570,7 +6570,7 @@ pub fn ptrace(request: u32, pid: pid_t, addr: usize, data: usize) PtraceError!vo
|
|||||||
else => |err| return unexpectedErrno(err),
|
else => |err| return unexpectedErrno(err),
|
||||||
},
|
},
|
||||||
|
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => switch (errno(std.c.ptrace(
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => switch (errno(std.c.ptrace(
|
||||||
@enumFromInt(request),
|
@enumFromInt(request),
|
||||||
pid,
|
pid,
|
||||||
@ptrFromInt(addr),
|
@ptrFromInt(addr),
|
||||||
|
|||||||
@ -521,7 +521,7 @@ test "getrlimit and setrlimit" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "sigrtmin/max" {
|
test "sigrtmin/max" {
|
||||||
if (native_os == .wasi or native_os == .windows or native_os == .macos) {
|
if (native_os == .wasi or native_os == .windows or native_os.isDarwin()) {
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,7 +550,7 @@ test "sigset empty/full" {
|
|||||||
// Some signals (i.e., 32 - 34 on glibc/musl) are not allowed to be added to a
|
// Some signals (i.e., 32 - 34 on glibc/musl) are not allowed to be added to a
|
||||||
// sigset by the C library, so avoid testing them.
|
// sigset by the C library, so avoid testing them.
|
||||||
fn reserved_signo(i: usize) bool {
|
fn reserved_signo(i: usize) bool {
|
||||||
if (native_os == .macos) return false;
|
if (native_os.isDarwin()) return false;
|
||||||
if (!builtin.link_libc) return false;
|
if (!builtin.link_libc) return false;
|
||||||
const max = if (native_os == .netbsd) 32 else 31;
|
const max = if (native_os == .netbsd) 32 else 31;
|
||||||
return i > max and i < posix.sigrtmin();
|
return i > max and i < posix.sigrtmin();
|
||||||
|
|||||||
@ -1530,11 +1530,13 @@ pub const UserInfo = struct {
|
|||||||
pub fn getUserInfo(name: []const u8) !UserInfo {
|
pub fn getUserInfo(name: []const u8) !UserInfo {
|
||||||
return switch (native_os) {
|
return switch (native_os) {
|
||||||
.linux,
|
.linux,
|
||||||
.macos,
|
.driverkit,
|
||||||
.watchos,
|
|
||||||
.visionos,
|
|
||||||
.tvos,
|
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
|
.macos,
|
||||||
|
.tvos,
|
||||||
|
.visionos,
|
||||||
|
.watchos,
|
||||||
.freebsd,
|
.freebsd,
|
||||||
.netbsd,
|
.netbsd,
|
||||||
.openbsd,
|
.openbsd,
|
||||||
@ -1666,7 +1668,7 @@ pub fn getBaseAddress() usize {
|
|||||||
else => {},
|
else => {},
|
||||||
} else unreachable;
|
} else unreachable;
|
||||||
},
|
},
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
return @intFromPtr(&std.c._mh_execute_header);
|
return @intFromPtr(&std.c._mh_execute_header);
|
||||||
},
|
},
|
||||||
.windows => return @intFromPtr(windows.kernel32.GetModuleHandleW(null)),
|
.windows => return @intFromPtr(windows.kernel32.GetModuleHandleW(null)),
|
||||||
@ -1682,7 +1684,7 @@ pub const can_execv = switch (native_os) {
|
|||||||
|
|
||||||
/// Tells whether spawning child processes is supported (e.g. via Child)
|
/// Tells whether spawning child processes is supported (e.g. via Child)
|
||||||
pub const can_spawn = switch (native_os) {
|
pub const can_spawn = switch (native_os) {
|
||||||
.wasi, .watchos, .tvos, .visionos => false,
|
.wasi, .ios, .tvos, .visionos, .watchos => false,
|
||||||
else => true,
|
else => true,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1770,7 +1772,7 @@ pub fn totalSystemMemory() TotalSystemMemoryError!u64 {
|
|||||||
return @as(u64, @intCast(physmem));
|
return @as(u64, @intCast(physmem));
|
||||||
},
|
},
|
||||||
// whole Darwin family
|
// whole Darwin family
|
||||||
.driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
// "hw.memsize" returns uint64_t
|
// "hw.memsize" returns uint64_t
|
||||||
var physmem: u64 = undefined;
|
var physmem: u64 = undefined;
|
||||||
var len: usize = @sizeOf(u64);
|
var len: usize = @sizeOf(u64);
|
||||||
|
|||||||
@ -136,7 +136,7 @@ pub const ResourceUsageStatistics = struct {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.macos, .ios => {
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
if (rus.rusage) |ru| {
|
if (rus.rusage) |ru| {
|
||||||
// Darwin oddly reports in bytes instead of kilobytes.
|
// Darwin oddly reports in bytes instead of kilobytes.
|
||||||
return @as(usize, @intCast(ru.maxrss));
|
return @as(usize, @intCast(ru.maxrss));
|
||||||
@ -149,7 +149,7 @@ pub const ResourceUsageStatistics = struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const rusage_init = switch (native_os) {
|
const rusage_init = switch (native_os) {
|
||||||
.linux, .macos, .ios => @as(?posix.rusage, null),
|
.linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => @as(?posix.rusage, null),
|
||||||
.windows => @as(?windows.VM_COUNTERS, null),
|
.windows => @as(?windows.VM_COUNTERS, null),
|
||||||
else => {},
|
else => {},
|
||||||
};
|
};
|
||||||
@ -486,7 +486,7 @@ fn waitUnwrappedPosix(self: *ChildProcess) void {
|
|||||||
const res: posix.WaitPidResult = res: {
|
const res: posix.WaitPidResult = res: {
|
||||||
if (self.request_resource_usage_statistics) {
|
if (self.request_resource_usage_statistics) {
|
||||||
switch (native_os) {
|
switch (native_os) {
|
||||||
.linux, .macos, .ios => {
|
.linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => {
|
||||||
var ru: posix.rusage = undefined;
|
var ru: posix.rusage = undefined;
|
||||||
const res = posix.wait4(self.id, 0, &ru);
|
const res = posix.wait4(self.id, 0, &ru);
|
||||||
self.resource_usage_statistics.rusage = ru;
|
self.resource_usage_statistics.rusage = ru;
|
||||||
|
|||||||
@ -76,7 +76,7 @@ pub const Instant = struct {
|
|||||||
},
|
},
|
||||||
// On darwin, use UPTIME_RAW instead of MONOTONIC as it ticks while
|
// On darwin, use UPTIME_RAW instead of MONOTONIC as it ticks while
|
||||||
// suspended.
|
// suspended.
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => posix.CLOCK.UPTIME_RAW,
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => posix.CLOCK.UPTIME_RAW,
|
||||||
// On freebsd derivatives, use MONOTONIC_FAST as currently there's
|
// On freebsd derivatives, use MONOTONIC_FAST as currently there's
|
||||||
// no precision tradeoff.
|
// no precision tradeoff.
|
||||||
.freebsd, .dragonfly => posix.CLOCK.MONOTONIC_FAST,
|
.freebsd, .dragonfly => posix.CLOCK.MONOTONIC_FAST,
|
||||||
|
|||||||
@ -227,7 +227,7 @@ pub fn detectFromBuilding(
|
|||||||
fn libCGenericName(target: *const std.Target) [:0]const u8 {
|
fn libCGenericName(target: *const std.Target) [:0]const u8 {
|
||||||
switch (target.os.tag) {
|
switch (target.os.tag) {
|
||||||
.windows => return "mingw",
|
.windows => return "mingw",
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => return "darwin",
|
.driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => return "darwin",
|
||||||
.freebsd => return "freebsd",
|
.freebsd => return "freebsd",
|
||||||
.netbsd => return "netbsd",
|
.netbsd => return "netbsd",
|
||||||
else => {},
|
else => {},
|
||||||
@ -263,7 +263,6 @@ fn libCGenericName(target: *const std.Target) [:0]const u8 {
|
|||||||
.msvc,
|
.msvc,
|
||||||
.itanium,
|
.itanium,
|
||||||
.simulator,
|
.simulator,
|
||||||
.macabi,
|
|
||||||
=> unreachable,
|
=> unreachable,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,7 +81,7 @@ pub fn getExternalExecutor(
|
|||||||
// If the OS match and OS is macOS and CPU is arm64, we can use Rosetta 2
|
// If the OS match and OS is macOS and CPU is arm64, we can use Rosetta 2
|
||||||
// to emulate the foreign architecture.
|
// to emulate the foreign architecture.
|
||||||
if (options.allow_rosetta and os_match and
|
if (options.allow_rosetta and os_match and
|
||||||
host.os.tag == .macos and host.cpu.arch == .aarch64)
|
(host.os.tag == .maccatalyst or host.os.tag == .macos) and host.cpu.arch == .aarch64)
|
||||||
{
|
{
|
||||||
switch (candidate.cpu.arch) {
|
switch (candidate.cpu.arch) {
|
||||||
.x86_64 => return .rosetta,
|
.x86_64 => return .rosetta,
|
||||||
|
|||||||
@ -37,13 +37,9 @@ pub fn isSdkInstalled(allocator: Allocator) bool {
|
|||||||
pub fn getSdk(allocator: Allocator, target: *const Target) ?[]const u8 {
|
pub fn getSdk(allocator: Allocator, target: *const Target) ?[]const u8 {
|
||||||
const is_simulator_abi = target.abi == .simulator;
|
const is_simulator_abi = target.abi == .simulator;
|
||||||
const sdk = switch (target.os.tag) {
|
const sdk = switch (target.os.tag) {
|
||||||
.ios => switch (target.abi) {
|
|
||||||
.macabi => "macosx",
|
|
||||||
.simulator => "iphonesimulator",
|
|
||||||
else => "iphoneos",
|
|
||||||
},
|
|
||||||
.driverkit => "driverkit",
|
.driverkit => "driverkit",
|
||||||
.macos => "macosx",
|
.ios => if (is_simulator_abi) "iphonesimulator" else "iphoneos",
|
||||||
|
.maccatalyst, .macos => "macosx",
|
||||||
.tvos => if (is_simulator_abi) "appletvsimulator" else "appletvos",
|
.tvos => if (is_simulator_abi) "appletvsimulator" else "appletvos",
|
||||||
.visionos => if (is_simulator_abi) "xrsimulator" else "xros",
|
.visionos => if (is_simulator_abi) "xrsimulator" else "xros",
|
||||||
.watchos => if (is_simulator_abi) "watchsimulator" else "watchos",
|
.watchos => if (is_simulator_abi) "watchsimulator" else "watchos",
|
||||||
|
|||||||
@ -6761,12 +6761,15 @@ fn addCommonCCArgs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (target.os.tag) {
|
switch (target.os.tag) {
|
||||||
.ios, .macos, .tvos, .watchos => |os| if (is_clang) {
|
.ios, .maccatalyst, .macos, .tvos, .watchos => |os| if (is_clang) {
|
||||||
try argv.ensureUnusedCapacity(2);
|
try argv.ensureUnusedCapacity(2);
|
||||||
// Pass the proper -m<os>-version-min argument for darwin.
|
// Pass the proper -m<os>-version-min argument for darwin.
|
||||||
const ver = target.os.version_range.semver.min;
|
const ver = target.os.version_range.semver.min;
|
||||||
argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-m{s}{s}-version-min={d}.{d}.{d}", .{
|
argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-m{s}{s}-version-min={d}.{d}.{d}", .{
|
||||||
@tagName(os),
|
switch (os) {
|
||||||
|
.maccatalyst => "ios",
|
||||||
|
else => @tagName(os),
|
||||||
|
},
|
||||||
switch (target.abi) {
|
switch (target.abi) {
|
||||||
.simulator => "-simulator",
|
.simulator => "-simulator",
|
||||||
else => "",
|
else => "",
|
||||||
|
|||||||
@ -369,7 +369,7 @@ pub fn resolve(options: Options) ResolveError!Config {
|
|||||||
|
|
||||||
// load_dynamic_library standalone test not passing on this combination
|
// load_dynamic_library standalone test not passing on this combination
|
||||||
// https://github.com/ziglang/zig/issues/24080
|
// https://github.com/ziglang/zig/issues/24080
|
||||||
if (target.os.tag == .macos and is_dyn_lib) break :b true;
|
if (target.os.tag.isDarwin() and is_dyn_lib) break :b true;
|
||||||
|
|
||||||
// At this point we would prefer to use our own self-hosted backend,
|
// At this point we would prefer to use our own self-hosted backend,
|
||||||
// because the compilation speed is better than LLVM. But only do it if
|
// because the compilation speed is better than LLVM. But only do it if
|
||||||
|
|||||||
@ -189,7 +189,7 @@ pub fn updateFile(
|
|||||||
// disambiguates by returning EEXIST, indicating original
|
// disambiguates by returning EEXIST, indicating original
|
||||||
// failure was a race, or ENOENT, indicating deletion of the
|
// failure was a race, or ENOENT, indicating deletion of the
|
||||||
// directory of our open handle.
|
// directory of our open handle.
|
||||||
if (builtin.os.tag != .macos) {
|
if (!builtin.os.tag.isDarwin()) {
|
||||||
std.process.fatal("cache directory '{f}' unexpectedly removed during compiler execution", .{
|
std.process.fatal("cache directory '{f}' unexpectedly removed during compiler execution", .{
|
||||||
cache_directory,
|
cache_directory,
|
||||||
});
|
});
|
||||||
|
|||||||
@ -183,6 +183,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
try llvm_triple.appendSlice(switch (target.os.tag) {
|
try llvm_triple.appendSlice(switch (target.os.tag) {
|
||||||
.driverkit,
|
.driverkit,
|
||||||
.ios,
|
.ios,
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.tvos,
|
.tvos,
|
||||||
.visionos,
|
.visionos,
|
||||||
@ -204,7 +205,6 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
try llvm_triple.append('-');
|
try llvm_triple.append('-');
|
||||||
|
|
||||||
const llvm_os = switch (target.os.tag) {
|
const llvm_os = switch (target.os.tag) {
|
||||||
.freestanding => "unknown",
|
|
||||||
.dragonfly => "dragonfly",
|
.dragonfly => "dragonfly",
|
||||||
.freebsd => "freebsd",
|
.freebsd => "freebsd",
|
||||||
.fuchsia => "fuchsia",
|
.fuchsia => "fuchsia",
|
||||||
@ -218,11 +218,9 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
.cuda => "cuda",
|
.cuda => "cuda",
|
||||||
.nvcl => "nvcl",
|
.nvcl => "nvcl",
|
||||||
.amdhsa => "amdhsa",
|
.amdhsa => "amdhsa",
|
||||||
.opencl => "unknown", // https://llvm.org/docs/SPIRVUsage.html#target-triples
|
|
||||||
.ps3 => "lv2",
|
.ps3 => "lv2",
|
||||||
.ps4 => "ps4",
|
.ps4 => "ps4",
|
||||||
.ps5 => "ps5",
|
.ps5 => "ps5",
|
||||||
.vita => "unknown", // LLVM doesn't know about this target
|
|
||||||
.mesa3d => "mesa3d",
|
.mesa3d => "mesa3d",
|
||||||
.amdpal => "amdpal",
|
.amdpal => "amdpal",
|
||||||
.hermit => "hermit",
|
.hermit => "hermit",
|
||||||
@ -230,7 +228,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
.wasi => "wasi",
|
.wasi => "wasi",
|
||||||
.emscripten => "emscripten",
|
.emscripten => "emscripten",
|
||||||
.macos => "macosx",
|
.macos => "macosx",
|
||||||
.ios => "ios",
|
.ios, .maccatalyst => "ios",
|
||||||
.tvos => "tvos",
|
.tvos => "tvos",
|
||||||
.watchos => "watchos",
|
.watchos => "watchos",
|
||||||
.driverkit => "driverkit",
|
.driverkit => "driverkit",
|
||||||
@ -240,10 +238,13 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
.managarm => "managarm",
|
.managarm => "managarm",
|
||||||
|
|
||||||
.@"3ds",
|
.@"3ds",
|
||||||
.opengl,
|
|
||||||
.plan9,
|
|
||||||
.contiki,
|
.contiki,
|
||||||
|
.freestanding,
|
||||||
|
.opencl, // https://llvm.org/docs/SPIRVUsage.html#target-triples
|
||||||
|
.opengl,
|
||||||
.other,
|
.other,
|
||||||
|
.plan9,
|
||||||
|
.vita,
|
||||||
=> "unknown",
|
=> "unknown",
|
||||||
};
|
};
|
||||||
try llvm_triple.appendSlice(llvm_os);
|
try llvm_triple.appendSlice(llvm_os);
|
||||||
@ -266,7 +267,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
try llvm_triple.append('-');
|
try llvm_triple.append('-');
|
||||||
|
|
||||||
const llvm_abi = switch (target.abi) {
|
const llvm_abi = switch (target.abi) {
|
||||||
.none, .ilp32 => "unknown",
|
.none => if (target.os.tag == .maccatalyst) "macabi" else "unknown",
|
||||||
.gnu => "gnu",
|
.gnu => "gnu",
|
||||||
.gnuabin32 => "gnuabin32",
|
.gnuabin32 => "gnuabin32",
|
||||||
.gnuabi64 => "gnuabi64",
|
.gnuabi64 => "gnuabi64",
|
||||||
@ -275,6 +276,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
.gnuf32 => "gnuf32",
|
.gnuf32 => "gnuf32",
|
||||||
.gnusf => "gnusf",
|
.gnusf => "gnusf",
|
||||||
.gnux32 => "gnux32",
|
.gnux32 => "gnux32",
|
||||||
|
.ilp32 => "unknown",
|
||||||
.code16 => "code16",
|
.code16 => "code16",
|
||||||
.eabi => "eabi",
|
.eabi => "eabi",
|
||||||
.eabihf => "eabihf",
|
.eabihf => "eabihf",
|
||||||
@ -296,7 +298,6 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
|
|||||||
.msvc => "msvc",
|
.msvc => "msvc",
|
||||||
.itanium => "itanium",
|
.itanium => "itanium",
|
||||||
.simulator => "simulator",
|
.simulator => "simulator",
|
||||||
.macabi => "macabi",
|
|
||||||
.ohos, .ohoseabi => "ohos",
|
.ohos, .ohoseabi => "ohos",
|
||||||
};
|
};
|
||||||
try llvm_triple.appendSlice(llvm_abi);
|
try llvm_triple.appendSlice(llvm_abi);
|
||||||
@ -12595,7 +12596,7 @@ fn ccAbiPromoteInt(cc: std.builtin.CallingConvention, zcu: *Zcu, ty: Type) ?std.
|
|||||||
else => return null,
|
else => return null,
|
||||||
};
|
};
|
||||||
return switch (target.os.tag) {
|
return switch (target.os.tag) {
|
||||||
.macos, .ios, .watchos, .tvos, .visionos => switch (int_info.bits) {
|
.driverkit, .ios, .maccatalyst, .macos, .watchos, .tvos, .visionos => switch (int_info.bits) {
|
||||||
0...16 => int_info.signedness,
|
0...16 => int_info.signedness,
|
||||||
else => null,
|
else => null,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -30,7 +30,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
|
|||||||
const root_name = switch (target.os.tag) {
|
const root_name = switch (target.os.tag) {
|
||||||
// On Apple platforms, we use the same name as LLVM because the
|
// On Apple platforms, we use the same name as LLVM because the
|
||||||
// TSAN library implementation hard-codes a check for these names.
|
// TSAN library implementation hard-codes a check for these names.
|
||||||
.driverkit, .macos => "clang_rt.tsan_osx_dynamic",
|
.driverkit, .maccatalyst, .macos => "clang_rt.tsan_osx_dynamic",
|
||||||
.ios => if (target.abi == .simulator) "clang_rt.tsan_iossim_dynamic" else "clang_rt.tsan_ios_dynamic",
|
.ios => if (target.abi == .simulator) "clang_rt.tsan_iossim_dynamic" else "clang_rt.tsan_ios_dynamic",
|
||||||
.tvos => if (target.abi == .simulator) "clang_rt.tsan_tvossim_dynamic" else "clang_rt.tsan_tvos_dynamic",
|
.tvos => if (target.abi == .simulator) "clang_rt.tsan_tvossim_dynamic" else "clang_rt.tsan_tvos_dynamic",
|
||||||
.visionos => if (target.abi == .simulator) "clang_rt.tsan_xrossim_dynamic" else "clang_rt.tsan_xros_dynamic",
|
.visionos => if (target.abi == .simulator) "clang_rt.tsan_xrossim_dynamic" else "clang_rt.tsan_xros_dynamic",
|
||||||
@ -134,7 +134,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
|
|||||||
}
|
}
|
||||||
|
|
||||||
const platform_tsan_sources = switch (target.os.tag) {
|
const platform_tsan_sources = switch (target.os.tag) {
|
||||||
.ios, .macos, .watchos, .tvos, .visionos => &darwin_tsan_sources,
|
.driverkit, .ios, .maccatalyst, .macos, .watchos, .tvos, .visionos => &darwin_tsan_sources,
|
||||||
.windows => &windows_tsan_sources,
|
.windows => &windows_tsan_sources,
|
||||||
else => &unix_tsan_sources,
|
else => &unix_tsan_sources,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -620,7 +620,7 @@ pub const File = struct {
|
|||||||
.linux => std.posix.ptrace(std.os.linux.PTRACE.ATTACH, pid, 0, 0) catch |err| {
|
.linux => std.posix.ptrace(std.os.linux.PTRACE.ATTACH, pid, 0, 0) catch |err| {
|
||||||
log.warn("ptrace failure: {s}", .{@errorName(err)});
|
log.warn("ptrace failure: {s}", .{@errorName(err)});
|
||||||
},
|
},
|
||||||
.macos => {
|
.maccatalyst, .macos => {
|
||||||
const macho_file = base.cast(.macho).?;
|
const macho_file = base.cast(.macho).?;
|
||||||
macho_file.ptraceAttach(pid) catch |err| {
|
macho_file.ptraceAttach(pid) catch |err| {
|
||||||
log.warn("attaching failed with error: {s}", .{@errorName(err)});
|
log.warn("attaching failed with error: {s}", .{@errorName(err)});
|
||||||
@ -700,7 +700,7 @@ pub const File = struct {
|
|||||||
|
|
||||||
if (base.child_pid) |pid| {
|
if (base.child_pid) |pid| {
|
||||||
switch (builtin.os.tag) {
|
switch (builtin.os.tag) {
|
||||||
.macos => {
|
.maccatalyst, .macos => {
|
||||||
const macho_file = base.cast(.macho).?;
|
const macho_file = base.cast(.macho).?;
|
||||||
macho_file.ptraceDetach(pid) catch |err| {
|
macho_file.ptraceDetach(pid) catch |err| {
|
||||||
log.warn("detaching failed with error: {s}", .{@errorName(err)});
|
log.warn("detaching failed with error: {s}", .{@errorName(err)});
|
||||||
|
|||||||
@ -3596,7 +3596,7 @@ pub fn requiresCodeSig(self: MachO) bool {
|
|||||||
const target = self.getTarget();
|
const target = self.getTarget();
|
||||||
return switch (target.cpu.arch) {
|
return switch (target.cpu.arch) {
|
||||||
.aarch64 => switch (target.os.tag) {
|
.aarch64 => switch (target.os.tag) {
|
||||||
.driverkit, .macos => true,
|
.driverkit, .maccatalyst, .macos => true,
|
||||||
.ios, .tvos, .visionos, .watchos => target.abi == .simulator,
|
.ios, .tvos, .visionos, .watchos => target.abi == .simulator,
|
||||||
else => false,
|
else => false,
|
||||||
},
|
},
|
||||||
@ -4032,7 +4032,7 @@ fn formatSectType(tt: u8, w: *Writer) Writer.Error!void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const is_hot_update_compatible = switch (builtin.target.os.tag) {
|
const is_hot_update_compatible = switch (builtin.target.os.tag) {
|
||||||
.macos => true,
|
.maccatalyst, .macos => true,
|
||||||
else => false,
|
else => false,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4174,7 +4174,7 @@ pub const Platform = struct {
|
|||||||
.os_tag = switch (cmd.platform) {
|
.os_tag = switch (cmd.platform) {
|
||||||
.DRIVERKIT => .driverkit,
|
.DRIVERKIT => .driverkit,
|
||||||
.IOS, .IOSSIMULATOR => .ios,
|
.IOS, .IOSSIMULATOR => .ios,
|
||||||
.MACCATALYST => .ios,
|
.MACCATALYST => .maccatalyst,
|
||||||
.MACOS => .macos,
|
.MACOS => .macos,
|
||||||
.TVOS, .TVOSSIMULATOR => .tvos,
|
.TVOS, .TVOSSIMULATOR => .tvos,
|
||||||
.VISIONOS, .VISIONOSSIMULATOR => .visionos,
|
.VISIONOS, .VISIONOSSIMULATOR => .visionos,
|
||||||
@ -4182,7 +4182,6 @@ pub const Platform = struct {
|
|||||||
else => @panic("TODO"),
|
else => @panic("TODO"),
|
||||||
},
|
},
|
||||||
.abi = switch (cmd.platform) {
|
.abi = switch (cmd.platform) {
|
||||||
.MACCATALYST => .macabi,
|
|
||||||
.IOSSIMULATOR,
|
.IOSSIMULATOR,
|
||||||
.TVOSSIMULATOR,
|
.TVOSSIMULATOR,
|
||||||
.VISIONOSSIMULATOR,
|
.VISIONOSSIMULATOR,
|
||||||
@ -4198,6 +4197,7 @@ pub const Platform = struct {
|
|||||||
.VERSION_MIN_TVOS,
|
.VERSION_MIN_TVOS,
|
||||||
.VERSION_MIN_WATCHOS,
|
.VERSION_MIN_WATCHOS,
|
||||||
=> {
|
=> {
|
||||||
|
// We can't distinguish Mac Catalyst here, but this is legacy stuff anyway.
|
||||||
const cmd = lc.cast(macho.version_min_command).?;
|
const cmd = lc.cast(macho.version_min_command).?;
|
||||||
return .{
|
return .{
|
||||||
.os_tag = switch (lc.cmd()) {
|
.os_tag = switch (lc.cmd()) {
|
||||||
@ -4230,11 +4230,8 @@ pub const Platform = struct {
|
|||||||
pub fn toApplePlatform(plat: Platform) macho.PLATFORM {
|
pub fn toApplePlatform(plat: Platform) macho.PLATFORM {
|
||||||
return switch (plat.os_tag) {
|
return switch (plat.os_tag) {
|
||||||
.driverkit => .DRIVERKIT,
|
.driverkit => .DRIVERKIT,
|
||||||
.ios => switch (plat.abi) {
|
.ios => if (plat.abi == .simulator) .IOSSIMULATOR else .IOS,
|
||||||
.macabi => .MACCATALYST,
|
.maccatalyst => .MACCATALYST,
|
||||||
.simulator => .IOSSIMULATOR,
|
|
||||||
else => .IOS,
|
|
||||||
},
|
|
||||||
.macos => .MACOS,
|
.macos => .MACOS,
|
||||||
.tvos => if (plat.abi == .simulator) .TVOSSIMULATOR else .TVOS,
|
.tvos => if (plat.abi == .simulator) .TVOSSIMULATOR else .TVOS,
|
||||||
.visionos => if (plat.abi == .simulator) .VISIONOSSIMULATOR else .VISIONOS,
|
.visionos => if (plat.abi == .simulator) .VISIONOSSIMULATOR else .VISIONOS,
|
||||||
@ -4302,8 +4299,8 @@ const SupportedPlatforms = struct {
|
|||||||
const supported_platforms = [_]SupportedPlatforms{
|
const supported_platforms = [_]SupportedPlatforms{
|
||||||
.{ .driverkit, .none, 0x130000, 0x130000 },
|
.{ .driverkit, .none, 0x130000, 0x130000 },
|
||||||
.{ .ios, .none, 0x0C0000, 0x070000 },
|
.{ .ios, .none, 0x0C0000, 0x070000 },
|
||||||
.{ .ios, .macabi, 0x0D0000, 0x0D0000 },
|
|
||||||
.{ .ios, .simulator, 0x0D0000, 0x080000 },
|
.{ .ios, .simulator, 0x0D0000, 0x080000 },
|
||||||
|
.{ .maccatalyst, .none, 0x0D0000, 0x0D0000 },
|
||||||
.{ .macos, .none, 0x0A0E00, 0x0A0800 },
|
.{ .macos, .none, 0x0A0E00, 0x0A0800 },
|
||||||
.{ .tvos, .none, 0x0C0000, 0x070000 },
|
.{ .tvos, .none, 0x0C0000, 0x070000 },
|
||||||
.{ .tvos, .simulator, 0x0D0000, 0x080000 },
|
.{ .tvos, .simulator, 0x0D0000, 0x080000 },
|
||||||
|
|||||||
@ -281,7 +281,7 @@ pub fn writeRpathLC(rpath: []const u8, writer: *Writer) !void {
|
|||||||
pub fn writeVersionMinLC(platform: MachO.Platform, sdk_version: ?std.SemanticVersion, writer: *Writer) !void {
|
pub fn writeVersionMinLC(platform: MachO.Platform, sdk_version: ?std.SemanticVersion, writer: *Writer) !void {
|
||||||
const cmd: macho.LC = switch (platform.os_tag) {
|
const cmd: macho.LC = switch (platform.os_tag) {
|
||||||
.macos => .VERSION_MIN_MACOSX,
|
.macos => .VERSION_MIN_MACOSX,
|
||||||
.ios => .VERSION_MIN_IPHONEOS,
|
.ios, .maccatalyst => .VERSION_MIN_IPHONEOS,
|
||||||
.tvos => .VERSION_MIN_TVOS,
|
.tvos => .VERSION_MIN_TVOS,
|
||||||
.watchos => .VERSION_MIN_WATCHOS,
|
.watchos => .VERSION_MIN_WATCHOS,
|
||||||
else => unreachable,
|
else => unreachable,
|
||||||
|
|||||||
@ -4487,7 +4487,7 @@ fn runOrTestHotSwap(
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (builtin.target.os.tag) {
|
switch (builtin.target.os.tag) {
|
||||||
.macos, .ios, .tvos, .watchos, .visionos => {
|
.macos => {
|
||||||
const PosixSpawn = @import("DarwinPosixSpawn.zig");
|
const PosixSpawn = @import("DarwinPosixSpawn.zig");
|
||||||
|
|
||||||
var attr = try PosixSpawn.Attr.init();
|
var attr = try PosixSpawn.Attr.init();
|
||||||
|
|||||||
@ -29,6 +29,7 @@ pub fn libCNeedsLibUnwind(target: *const std.Target, link_mode: std.builtin.Link
|
|||||||
|
|
||||||
pub fn libCxxNeedsLibUnwind(target: *const std.Target) bool {
|
pub fn libCxxNeedsLibUnwind(target: *const std.Target) bool {
|
||||||
return switch (target.os.tag) {
|
return switch (target.os.tag) {
|
||||||
|
.maccatalyst,
|
||||||
.macos,
|
.macos,
|
||||||
.ios,
|
.ios,
|
||||||
.watchos,
|
.watchos,
|
||||||
|
|||||||
@ -1398,7 +1398,7 @@ test "allocation and looping over 3-byte integer" {
|
|||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
|
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .macos) {
|
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag.isDarwin()) {
|
||||||
return error.SkipZigTest; // TODO
|
return error.SkipZigTest; // TODO
|
||||||
}
|
}
|
||||||
if (builtin.cpu.arch == .s390x and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // TODO
|
if (builtin.cpu.arch == .s390x and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // TODO
|
||||||
|
|||||||
@ -9,7 +9,7 @@ test "thread local variable" {
|
|||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .macos) {
|
if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag.isDarwin()) {
|
||||||
// Fails due to register hazards.
|
// Fails due to register hazards.
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -97,7 +97,7 @@ test "simple variadic function" {
|
|||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
|
if (builtin.zig_backend == .stage2_llvm and !builtin.os.tag.isDarwin() and builtin.cpu.arch.isAARCH64()) {
|
||||||
// https://github.com/ziglang/zig/issues/14096
|
// https://github.com/ziglang/zig/issues/14096
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
@ -159,7 +159,7 @@ test "coerce reference to var arg" {
|
|||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
|
if (builtin.zig_backend == .stage2_llvm and !builtin.os.tag.isDarwin() and builtin.cpu.arch.isAARCH64()) {
|
||||||
// https://github.com/ziglang/zig/issues/14096
|
// https://github.com/ziglang/zig/issues/14096
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
@ -191,7 +191,7 @@ test "variadic functions" {
|
|||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
|
if (builtin.zig_backend == .stage2_llvm and !builtin.os.tag.isDarwin() and builtin.cpu.arch.isAARCH64()) {
|
||||||
// https://github.com/ziglang/zig/issues/14096
|
// https://github.com/ziglang/zig/issues/14096
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
@ -244,7 +244,7 @@ test "copy VaList" {
|
|||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
|
if (builtin.zig_backend == .stage2_llvm and !builtin.os.tag.isDarwin() and builtin.cpu.arch.isAARCH64()) {
|
||||||
// https://github.com/ziglang/zig/issues/14096
|
// https://github.com/ziglang/zig/issues/14096
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
@ -279,7 +279,7 @@ test "unused VaList arg" {
|
|||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
|
if (builtin.zig_backend == .stage2_llvm and !builtin.os.tag.isDarwin() and builtin.cpu.arch.isAARCH64()) {
|
||||||
// https://github.com/ziglang/zig/issues/14096
|
// https://github.com/ziglang/zig/issues/14096
|
||||||
return error.SkipZigTest;
|
return error.SkipZigTest;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1157,7 +1157,7 @@ test "big simd vector" {
|
|||||||
if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest;
|
if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest;
|
||||||
if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
|
if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
|
||||||
if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest;
|
if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .x86_64 and builtin.os.tag == .macos and builtin.mode != .Debug) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .x86_64 and builtin.os.tag.isDarwin() and builtin.mode != .Debug) return error.SkipZigTest;
|
||||||
|
|
||||||
c_big_vec(.{ 1, 2, 3, 4, 5, 6, 7, 8 });
|
c_big_vec(.{ 1, 2, 3, 4, 5, 6, 7, 8 });
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ const targets = [_]std.Target.Query{
|
|||||||
.{ .cpu_arch = .aarch64, .os_tag = .haiku, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .haiku, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .hermit, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .hermit, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .hurd, .abi = .gnu },
|
.{ .cpu_arch = .aarch64, .os_tag = .hurd, .abi = .gnu },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .macabi },
|
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .simulator },
|
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .simulator },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .android },
|
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .android },
|
||||||
@ -17,6 +16,7 @@ const targets = [_]std.Target.Query{
|
|||||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl },
|
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .ohos },
|
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .ohos },
|
||||||
|
.{ .cpu_arch = .aarch64, .os_tag = .maccatalyst, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .netbsd, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .netbsd, .abi = .none },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .openbsd, .abi = .none },
|
.{ .cpu_arch = .aarch64, .os_tag = .openbsd, .abi = .none },
|
||||||
@ -326,6 +326,7 @@ const targets = [_]std.Target.Query{
|
|||||||
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .muslx32 },
|
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .muslx32 },
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .none },
|
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .none },
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .ohos },
|
.{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .ohos },
|
||||||
|
.{ .cpu_arch = .x86_64, .os_tag = .maccatalyst, .abi = .none },
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .macos, .abi = .none },
|
.{ .cpu_arch = .x86_64, .os_tag = .macos, .abi = .none },
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .netbsd, .abi = .none },
|
.{ .cpu_arch = .x86_64, .os_tag = .netbsd, .abi = .none },
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .openbsd, .abi = .none },
|
.{ .cpu_arch = .x86_64, .os_tag = .openbsd, .abi = .none },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user