diff --git a/CMakeLists.txt b/CMakeLists.txt index 690e2e35b1b6..6efe4e749000 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -738,17 +738,12 @@ string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS) if(ZIG_HOST_TARGET_OS STREQUAL "darwin") set(ZIG_HOST_TARGET_OS "macos") elseif(ZIG_HOST_TARGET_OS STREQUAL "sunos") - check_symbol_exists(__illumos__ "" ZIG_HOST_TARGET_HAS_ILLUMOS_MACRO) - if (ZIG_HOST_TARGET_HAS_ILLUMOS_MACRO) - set(ZIG_HOST_TARGET_OS "illumos") - else() - set(ZIG_HOST_TARGET_OS "solaris") - endif() + set(ZIG_HOST_TARGET_OS "illumos") endif() string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" ZIG_HOST_TARGET_ARCH) if(ZIG_HOST_TARGET_ARCH MATCHES "^i[3-9]86$") - if (ZIG_HOST_TARGET_OS MATCHES "(solaris|illumos)") + if (ZIG_HOST_TARGET_OS STREQUAL "illumos") set(ZIG_HOST_TARGET_ARCH "x86_64") else() set(ZIG_HOST_TARGET_ARCH "x86") diff --git a/build.zig b/build.zig index c4a1d2f3adf5..40b74b94b47e 100644 --- a/build.zig +++ b/build.zig @@ -818,7 +818,7 @@ fn addCmakeCfgOptionsToExe( try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes); if (static) try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes); }, - .solaris, .illumos => { + .illumos => { try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes); try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes); }, diff --git a/lib/compiler/aro/aro/Compilation.zig b/lib/compiler/aro/aro/Compilation.zig index a31ff7ef7074..fea2ba2a6207 100644 --- a/lib/compiler/aro/aro/Compilation.zig +++ b/lib/compiler/aro/aro/Compilation.zig @@ -337,7 +337,7 @@ fn generateSystemDefines(comp: *Compilation, w: *std.Io.Writer) !void { .netbsd => try define(w, "__NetBSD__"), .openbsd => try define(w, "__OpenBSD__"), .dragonfly => try define(w, "__DragonFly__"), - .solaris => try defineStd(w, "sun", is_gnu), + .illumos => try defineStd(w, "sun", is_gnu), .macos, .tvos, .ios, @@ -361,7 +361,7 @@ fn generateSystemDefines(comp: *Compilation, w: *std.Io.Writer) !void { .linux, .haiku, .hurd, - .solaris, + .illumos, .aix, .emscripten, .ps4, @@ -618,7 +618,7 @@ fn generateSystemDefines(comp: *Compilation, w: *std.Io.Writer) !void { try defineStd(w, "sparc", is_gnu); try define(w, "__sparc_v9__"); try define(w, "__arch64__"); - if (comp.target.os.tag != .solaris) { + if (comp.target.os.tag != .illumos) { try define(w, "__sparc64__"); try define(w, "__sparc_v9__"); try define(w, "__sparcv9__"); @@ -626,7 +626,7 @@ fn generateSystemDefines(comp: *Compilation, w: *std.Io.Writer) !void { }, .sparc => { try defineStd(w, "sparc", is_gnu); - if (comp.target.os.tag == .solaris) { + if (comp.target.os.tag == .illumos) { try define(w, "__sparcv8"); } }, diff --git a/lib/compiler/aro/aro/Toolchain.zig b/lib/compiler/aro/aro/Toolchain.zig index 75c04d72158c..23e8d929b9e1 100644 --- a/lib/compiler/aro/aro/Toolchain.zig +++ b/lib/compiler/aro/aro/Toolchain.zig @@ -391,8 +391,8 @@ fn getUnwindLibKind(tc: *const Toolchain) !UnwindLibKind { } } -fn getAsNeededOption(is_solaris: bool, needed: bool) []const u8 { - if (is_solaris) { +fn getAsNeededOption(is_illumos: bool, needed: bool) []const u8 { + if (is_illumos) { return if (needed) "-zignore" else "-zrecord"; } else { return if (needed) "--as-needed" else "--no-as-needed"; @@ -412,7 +412,7 @@ fn addUnwindLibrary(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !voi try argv.ensureUnusedCapacity(tc.driver.comp.gpa, 3); if (as_needed) { - argv.appendAssumeCapacity(getAsNeededOption(target.os.tag == .solaris, true)); + argv.appendAssumeCapacity(getAsNeededOption(target.os.tag == .illumos, true)); } switch (unw) { .none => return, @@ -435,7 +435,7 @@ fn addUnwindLibrary(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !voi } if (as_needed) { - argv.appendAssumeCapacity(getAsNeededOption(target.os.tag == .solaris, false)); + argv.appendAssumeCapacity(getAsNeededOption(target.os.tag == .illumos, false)); } } diff --git a/lib/compiler/aro/aro/target.zig b/lib/compiler/aro/aro/target.zig index 0c17e816f8ad..080e99d6dfc6 100644 --- a/lib/compiler/aro/aro/target.zig +++ b/lib/compiler/aro/aro/target.zig @@ -252,7 +252,7 @@ pub fn systemCompiler(target: std.Target) LangOpts.Compiler { target.abi.isAndroid() or target.os.tag.isBSD() or target.os.tag == .fuchsia or - target.os.tag == .solaris or + target.os.tag == .illumos or target.os.tag == .haiku or target.cpu.arch == .hexagon) { @@ -281,7 +281,7 @@ pub fn hasFloat128(target: std.Target) bool { .haiku, .linux, .openbsd, - .solaris, + .illumos, => target.cpu.arch.isX86(), else => false, }; @@ -654,8 +654,7 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { .ps3 => "lv2", .netbsd => "netbsd", .openbsd => "openbsd", - .solaris => "solaris", - .illumos => "illumos", + .illumos => "solaris", .windows => "windows", .zos => "zos", .haiku => "haiku", @@ -755,7 +754,7 @@ pub fn isPIEDefault(target: std.Target) DefaultPIStatus { .dragonfly, .netbsd, .freebsd, - .solaris, + .illumos, .cuda, .amdhsa, @@ -838,7 +837,7 @@ pub fn isPICdefault(target: std.Target) DefaultPIStatus { .openbsd, .netbsd, .freebsd, - .solaris, + .illumos, .hurd, => { return switch (target.cpu.arch) { @@ -897,7 +896,7 @@ pub fn isPICDefaultForced(target: std.Target) DefaultPIStatus { .openbsd, .netbsd, .freebsd, - .solaris, + .illumos, .cuda, .ps4, .ps5, diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig index 060ba085b682..fb06fca2e9b2 100644 --- a/lib/std/Progress.zig +++ b/lib/std/Progress.zig @@ -1547,7 +1547,7 @@ fn handleSigWinch(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*anyopaque) const have_sigwinch = switch (builtin.os.tag) { .linux, .plan9, - .solaris, + .illumos, .netbsd, .openbsd, .haiku, diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 4cdbddcaec28..f906b12698f6 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -27,6 +27,7 @@ pub const Os = struct { aix, haiku, hurd, + illumos, linux, plan9, rtems, @@ -45,9 +46,6 @@ pub const Os = struct { visionos, watchos, - illumos, - solaris, - windows, uefi, @@ -98,10 +96,6 @@ pub const Os = struct { }; } - pub inline fn isSolarish(tag: Tag) bool { - return tag == .solaris or tag == .illumos; - } - pub fn exeFileExt(tag: Tag, arch: Cpu.Arch) [:0]const u8 { return switch (tag) { .windows => ".exe", @@ -163,11 +157,10 @@ pub const Os = struct { .managarm, .haiku, + .illumos, .plan9, .serenity, - .illumos, - .ps3, .ps4, .ps5, @@ -197,8 +190,6 @@ pub const Os = struct { .visionos, .watchos, - .solaris, - .uefi, .@"3ds", @@ -395,11 +386,10 @@ pub const Os = struct { .managarm, .haiku, + .illumos, .plan9, .serenity, - .illumos, - .ps3, .ps4, .ps5, @@ -597,13 +587,6 @@ pub const Os = struct { }, }, - .solaris => .{ - .semver = .{ - .min = .{ .major = 11, .minor = 0, .patch = 0 }, - .max = .{ .major = 11, .minor = 4, .patch = 0 }, - }, - }, - .windows => .{ .windows = .{ .min = .win10, @@ -930,6 +913,7 @@ pub const Abi = enum { .contiki, .fuchsia, .hermit, + .illumos, .managarm, .plan9, .serenity, @@ -937,8 +921,6 @@ pub const Abi = enum { .dragonfly, .driverkit, .macos, - .illumos, - .solaris, .ps3, .ps4, .ps5, @@ -2043,10 +2025,6 @@ pub const Cpu = struct { else => &s390x.cpu.arch8, }, .sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8. - .sparc64 => switch (os.tag) { - .solaris => &sparc.cpu.ultrasparc3, - else => generic(arch), - }, .x86 => &x86.cpu.pentium4, .x86_64 => switch (os.tag) { .driverkit => &x86.cpu.nehalem, @@ -2175,6 +2153,7 @@ pub inline fn isWasiLibC(target: *const Target) bool { pub fn requiresLibC(target: *const Target) bool { return switch (target.os.tag) { .aix, + .illumos, .driverkit, .macos, .ios, @@ -2184,8 +2163,6 @@ pub fn requiresLibC(target: *const Target) bool { .dragonfly, .openbsd, .haiku, - .solaris, - .illumos, .serenity, => true, @@ -2332,6 +2309,7 @@ pub const DynamicLinker = struct { .fuchsia, .haiku, + .illumos, .serenity, .dragonfly, @@ -2345,9 +2323,6 @@ pub const DynamicLinker = struct { .tvos, .visionos, .watchos, - - .illumos, - .solaris, => .arch_os, .hurd, .linux, @@ -2439,6 +2414,14 @@ pub const DynamicLinker = struct { else => none, }, + .illumos, + => switch (cpu.arch) { + .x86, + .x86_64, + => initFmt("/lib/{s}ld.so.1", .{if (ptrBitWidth_cpu_abi(cpu, .none) == 64) "64/" else ""}), + else => none, + }, + .linux => if (abi.isAndroid()) switch (cpu.arch) { .arm => if (abi == .androideabi) init("/system/bin/linker") else none, @@ -2755,22 +2738,6 @@ pub const DynamicLinker = struct { else => none, }, - .illumos, - => switch (cpu.arch) { - .x86, - .x86_64, - => initFmt("/lib/{s}ld.so.1", .{if (ptrBitWidth_cpu_abi(cpu, .none) == 64) "64/" else ""}), - else => none, - }, - - .solaris, - => switch (cpu.arch) { - .sparc64, - .x86_64, - => initFmt("/lib/{s}ld.so.1", .{if (ptrBitWidth_cpu_abi(cpu, .none) == 64) "64/" else ""}), - else => none, - }, - // Operating systems in this list have been verified as not having a standard // dynamic linker path. .freestanding, @@ -3134,6 +3101,7 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) u16 { .aix, .haiku, .hurd, + .illumos, .linux, .plan9, .rtems, @@ -3145,9 +3113,6 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) u16 { .netbsd, .openbsd, - .illumos, - .solaris, - .wasi, .emscripten, => switch (target.cpu.arch) { diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index dfefeceea02a..f587b15f8612 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -120,7 +120,7 @@ pub const max_name_len = switch (native_os) { .freebsd => 15, .openbsd => 23, .dragonfly => 1023, - .solaris, .illumos => 31, + .illumos => 31, // https://github.com/SerenityOS/serenity/blob/6b4c300353da49d3508b5442cf61da70bd04d757/Kernel/Tasks/Thread.h#L102 .serenity => 63, else => 0, @@ -211,7 +211,7 @@ pub fn setName(self: Thread, name: []const u8) SetNameError!void { else => |e| return posix.unexpectedErrno(e), } }, - .netbsd, .solaris, .illumos => if (use_pthreads) { + .netbsd, .illumos => if (use_pthreads) { const err = std.c.pthread_setname_np(self.getHandle(), name_with_terminator.ptr, null); switch (@as(posix.E, @enumFromInt(err))) { .SUCCESS => return, @@ -324,7 +324,7 @@ pub fn getName(self: Thread, buffer_ptr: *[max_name_len:0]u8) GetNameError!?[]co else => |e| return posix.unexpectedErrno(e), } }, - .netbsd, .solaris, .illumos => if (use_pthreads) { + .netbsd, .illumos => if (use_pthreads) { const err = std.c.pthread_getname_np(self.getHandle(), buffer.ptr, max_name_len + 1); switch (@as(posix.E, @enumFromInt(err))) { .SUCCESS => return std.mem.sliceTo(buffer, 0), @@ -739,10 +739,10 @@ const PosixThreadImpl = struct { }; return @as(usize, @intCast(count)); }, - .solaris, .illumos, .serenity => { + .illumos, .serenity => { // The "proper" way to get the cpu count would be to query // /dev/kstat via ioctls, and traverse a linked list for each - // cpu. (solaris, illumos) + // cpu. (illumos) const rc = c.sysconf(@intFromEnum(std.c._SC.NPROCESSORS_ONLN)); return switch (posix.errno(rc)) { .SUCCESS => @as(usize, @intCast(rc)), diff --git a/lib/std/c.zig b/lib/std/c.zig index cc7bd17cb06d..30e584c1a1cc 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -14,7 +14,7 @@ const windows = std.os.windows; const ws2_32 = std.os.windows.ws2_32; const darwin = @import("c/darwin.zig"); const freebsd = @import("c/freebsd.zig"); -const solaris = @import("c/solaris.zig"); +const illumos = @import("c/illumos.zig"); const netbsd = @import("c/netbsd.zig"); const dragonfly = @import("c/dragonfly.zig"); const haiku = @import("c/haiku.zig"); @@ -117,7 +117,7 @@ pub const timespec = switch (native_os) { sec: isize, nsec: isize, }, - .netbsd, .solaris, .illumos => extern struct { + .netbsd, .illumos => extern struct { sec: i64, nsec: isize, }, @@ -132,7 +132,7 @@ pub const dev_t = switch (native_os) { .linux => linux.dev_t, .emscripten => emscripten.dev_t, .wasi => wasi.device_t, - .openbsd, .haiku, .solaris, .illumos, .macos, .ios, .tvos, .watchos, .visionos => i32, + .openbsd, .haiku, .illumos, .macos, .ios, .tvos, .watchos, .visionos => i32, // https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L43 .netbsd, .freebsd, .serenity => u64, else => void, @@ -141,7 +141,7 @@ pub const dev_t = switch (native_os) { pub const mode_t = switch (native_os) { .linux => linux.mode_t, .emscripten => emscripten.mode_t, - .openbsd, .haiku, .netbsd, .solaris, .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 .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .dragonfly, .serenity => u16, else => u0, @@ -153,7 +153,7 @@ pub const nlink_t = switch (native_os) { .wasi => c_ulonglong, // https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L45 .freebsd, .serenity => u64, - .openbsd, .netbsd, .solaris, .illumos => u32, + .openbsd, .netbsd, .illumos => u32, .haiku => i32, else => void, }; @@ -310,7 +310,7 @@ pub const clockid_t = switch (native_os) { THREAD_CPUTIME_ID = 14, PROCESS_CPUTIME_ID = 15, }, - .solaris, .illumos => enum(u32) { + .illumos => enum(u32) { VIRTUAL = 1, THREAD_CPUTIME_ID = 2, REALTIME = 3, @@ -457,7 +457,7 @@ pub const E = switch (native_os) { }, .macos, .ios, .tvos, .watchos, .visionos => darwin.E, .freebsd => freebsd.E, - .solaris, .illumos => enum(u16) { + .illumos => enum(u16) { /// No error occurred. SUCCESS = 0, /// Not super-user @@ -1002,7 +1002,7 @@ pub const F = switch (native_os) { pub const GETOWNER_UIDS = 17; }, - .solaris, .illumos => struct { + .illumos => struct { /// Unlock a previously locked region pub const ULOCK = 0; /// Lock a region for exclusive use @@ -1263,7 +1263,7 @@ pub const Flock = switch (native_os) { /// Remote system id or zero for local. sysid: i32, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { type: c_short, whence: c_short, start: off_t, @@ -1293,7 +1293,7 @@ pub const Flock = switch (native_os) { pub const HOST_NAME_MAX = switch (native_os) { .linux => linux.HOST_NAME_MAX, .macos, .ios, .tvos, .watchos, .visionos => 72, - .openbsd, .haiku, .dragonfly, .netbsd, .solaris, .illumos, .freebsd => 255, + .openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd => 255, // https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L22 .serenity => 64, else => {}, @@ -1302,7 +1302,7 @@ pub const IOV_MAX = switch (native_os) { .linux => linux.IOV_MAX, .emscripten => emscripten.IOV_MAX, // https://github.com/SerenityOS/serenity/blob/098af0f846a87b651731780ff48420205fd33754/Kernel/API/POSIX/sys/uio.h#L16 - .openbsd, .haiku, .solaris, .illumos, .wasi, .serenity => 1024, + .openbsd, .haiku, .illumos, .wasi, .serenity => 1024, .macos, .ios, .tvos, .watchos, .visionos => 16, .dragonfly, .netbsd, .freebsd => KERN.IOV_MAX, else => {}, @@ -1549,7 +1549,7 @@ pub const MADV = switch (native_os) { pub const CORE = 9; pub const PROTECT = 10; }, - .solaris, .illumos => struct { + .illumos => struct { /// no further special treatment pub const NORMAL = 0; /// expect random page references @@ -1605,9 +1605,8 @@ pub const MCL = switch (native_os) { // https://github.com/DragonFlyBSD/DragonFlyBSD/blob/088552723935447397400336f5ddb7aa5f5de660/sys/sys/mman.h#L118 // https://github.com/NetBSD/src/blob/fd2741deca927c18e3ba15acdf78b8b14b2abe36/sys/sys/mman.h#L179 // https://github.com/openbsd/src/blob/39404228f6d36c0ca4be5f04ab5385568ebd6aa3/sys/sys/mman.h#L129 - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/sys/mman.h#L379 // https://github.com/illumos/illumos-gate/blob/5280477614f83fea20fc938729df6adb3e44340d/usr/src/uts/common/sys/mman.h#L343 - .freebsd, .dragonfly, .netbsd, .openbsd, .solaris, .illumos => packed struct(c_int) { + .freebsd, .dragonfly, .netbsd, .openbsd, .illumos => packed struct(c_int) { CURRENT: bool = 0, FUTURE: bool = 0, _: std.meta.Int(.unsigned, @bitSizeOf(c_int) - 2) = 0, @@ -1630,7 +1629,7 @@ pub const MSF = switch (native_os) { pub const DEACTIVATE = 0x8; pub const SYNC = 0x10; }, - .openbsd, .haiku, .dragonfly, .netbsd, .solaris, .illumos, .freebsd => struct { + .openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd => struct { pub const ASYNC = 1; pub const INVALIDATE = 2; pub const SYNC = 4; @@ -1650,7 +1649,7 @@ pub const NAME_MAX = switch (native_os) { // character, but POSIX definition says that NAME_MAX does not include the // terminating null. // https://github.com/SerenityOS/serenity/blob/c87557e9c1865fa1a6440de34ff6ce6fc858a2b7/Kernel/API/POSIX/sys/limits.h#L20 - .haiku, .openbsd, .dragonfly, .netbsd, .solaris, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 255, + .haiku, .openbsd, .dragonfly, .netbsd, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 255, else => {}, }; pub const PATH_MAX = switch (native_os) { @@ -1658,7 +1657,7 @@ pub const PATH_MAX = switch (native_os) { .emscripten => emscripten.PATH_MAX, .wasi => 4096, .windows => 260, - .openbsd, .haiku, .dragonfly, .netbsd, .solaris, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 1024, + .openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd, .macos, .ios, .tvos, .watchos, .visionos, .serenity => 1024, else => {}, }; @@ -1721,7 +1720,7 @@ pub const POLL = switch (native_os) { pub const STANDARD = IN | PRI | OUT | RDNORM | RDBAND | WRBAND | ERR | HUP | NVAL; }, - .solaris, .illumos => struct { + .illumos => struct { pub const IN = 0x0001; pub const PRI = 0x0002; pub const OUT = 0x0004; @@ -1812,7 +1811,7 @@ pub const PROT = switch (native_os) { .linux => linux.PROT, .emscripten => emscripten.PROT, // https://github.com/SerenityOS/serenity/blob/6d59d4d3d9e76e39112842ec487840828f1c9bfe/Kernel/API/POSIX/sys/mman.h#L28-L31 - .openbsd, .haiku, .dragonfly, .netbsd, .solaris, .illumos, .freebsd, .windows, .serenity => struct { + .openbsd, .haiku, .dragonfly, .netbsd, .illumos, .freebsd, .windows, .serenity => struct { /// page can not be accessed pub const NONE = 0x0; /// page can be read @@ -1852,7 +1851,7 @@ pub const RLIM = switch (native_os) { pub const SAVED_MAX = INFINITY; pub const SAVED_CUR = INFINITY; }, - .solaris, .illumos => struct { + .illumos => struct { /// No limit pub const INFINITY: rlim_t = (1 << 63) - 3; pub const SAVED_MAX: rlim_t = (1 << 63) - 2; @@ -2022,7 +2021,7 @@ pub const S = switch (native_os) { return m & IFMT == IFWHT; } }, - .solaris, .illumos => struct { + .illumos => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; @@ -2424,7 +2423,7 @@ pub const SA = switch (native_os) { pub const NOCLDWAIT = 0x0020; pub const SIGINFO = 0x0040; }, - .solaris, .illumos => struct { + .illumos => struct { pub const ONSTACK = 0x00000001; pub const RESETHAND = 0x00000002; pub const RESTART = 0x00000004; @@ -2485,7 +2484,7 @@ pub const SA = switch (native_os) { else => void, }; pub const sigval_t = switch (native_os) { - .netbsd, .solaris, .illumos => extern union { + .netbsd, .illumos => extern union { int: i32, ptr: ?*anyopaque, }, @@ -2525,7 +2524,7 @@ pub const _SC = if (builtin.abi.isAndroid()) enum(c_int) { .openbsd => enum(c_int) { PAGESIZE = 28, }, - .solaris, .illumos => enum(c_int) { + .illumos => enum(c_int) { PAGESIZE = 11, NPROCESSORS_ONLN = 15, SIGRT_MIN = 40, @@ -2566,7 +2565,7 @@ pub const SEEK = switch (native_os) { pub const CUR = 1; pub const END = 2; }, - .dragonfly, .solaris, .illumos => struct { + .dragonfly, .illumos => struct { pub const SET = 0; pub const CUR = 1; pub const END = 2; @@ -2765,7 +2764,7 @@ pub const SIG = switch (native_os) { return sig <= MAXSIG and sig > 0; } }, - .solaris, .illumos => struct { + .illumos => struct { pub const DFL: ?Sigaction.handler_fn = @ptrFromInt(0); pub const ERR: ?Sigaction.handler_fn = @ptrFromInt(maxInt(usize)); pub const IGN: ?Sigaction.handler_fn = @ptrFromInt(1); @@ -3089,7 +3088,7 @@ pub const SIG = switch (native_os) { pub const SIOCGIFINDEX = switch (native_os) { .linux => linux.SIOCGIFINDEX, .emscripten => emscripten.SIOCGIFINDEX, - .solaris, .illumos => solaris.SIOCGLIFINDEX, + .illumos => illumos.SIOCGLIFINDEX, // https://github.com/SerenityOS/serenity/blob/cb10f70394fb7e9cfc77f827adb2e46d199bc3a5/Kernel/API/Ioctl.h#L118 .serenity => 34, else => void, @@ -3204,7 +3203,7 @@ pub const Sigaction = switch (native_os) { /// signal mask to apply mask: sigset_t, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { pub const handler_fn = *align(1) const fn (i32) callconv(.c) void; pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.c) void; @@ -3301,7 +3300,7 @@ pub const T = switch (native_os) { pub const IOCGPTN = 0x4004740f; pub const IOCSIG = 0x2004745f; }, - .solaris, .illumos => struct { + .illumos => struct { pub const CGETA = tioc('T', 1); pub const CSETA = tioc('T', 2); pub const CSETAW = tioc('T', 3); @@ -3731,7 +3730,7 @@ pub const W = switch (native_os) { return (s & 0xffff) -% 1 < 0xff; } }, - .solaris, .illumos => struct { + .illumos => struct { pub const EXITED = 0o001; pub const TRAPPED = 0o002; pub const UNTRACED = 0o004; @@ -3944,7 +3943,7 @@ pub const clock_t = switch (native_os) { .emscripten => emscripten.clock_t, .macos, .ios, .tvos, .watchos, .visionos => c_ulong, .freebsd => isize, - .openbsd, .solaris, .illumos => i64, + .openbsd, .illumos => i64, .netbsd => u32, .haiku => i32, // https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L50 @@ -3975,7 +3974,7 @@ pub const dl_phdr_info = switch (native_os) { tls_modid: usize, tls_data: ?*anyopaque, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { addr: std.elf.Addr, name: ?[*:0]const u8, phdr: [*]std.elf.Phdr, @@ -4001,7 +4000,7 @@ pub const epoll_event = switch (native_os) { pub const ifreq = switch (native_os) { .linux => linux.ifreq, .emscripten => emscripten.ifreq, - .solaris, .illumos => lifreq, + .illumos => lifreq, // https://github.com/SerenityOS/serenity/blob/9882848e0bf783dfc8e8a6d887a848d70d9c58f4/Kernel/API/POSIX/net/if.h#L49-L82 .serenity => extern struct { // Not actually in a union, but the stdlib expects one for ifreq @@ -4026,10 +4025,9 @@ pub const ifreq = switch (native_os) { }; pub const in_pktinfo = switch (native_os) { .linux => linux.in_pktinfo, - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/netinet/in.h#L1084 // 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 - .solaris, .illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos => extern struct { + .illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos => extern struct { ifindex: u32, spec_dst: u32, addr: u32, @@ -4042,12 +4040,11 @@ pub const in6_pktinfo = switch (native_os) { // https://github.com/DragonFlyBSD/DragonFlyBSD/blob/6098912863ed4c7b3f70d7483910ce2956cf4ed3/sys/netinet6/in6.h#L575 // https://github.com/NetBSD/src/blob/80bf25a5691072d4755e84567ccbdf0729370dea/sys/netinet6/in6.h#L468 // https://github.com/openbsd/src/blob/718a31b40d39fc6064de6355eb144e74633133fc/sys/netinet6/in6.h#L365 - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/netinet/in.h#L1093 // https://github.com/illumos/illumos-gate/blob/608eb926e14f4ba4736b2d59e891335f1cba9e1e/usr/src/uts/common/netinet/in.h#L114IP1 // 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/SerenityOS/serenity/blob/5bd8af99be0bc4b2e14f361fd7d7590e6bcfa4d6/Kernel/API/POSIX/sys/socket.h#L122 - .freebsd, .dragonfly, .netbsd, .openbsd, .solaris, .illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos, .haiku, .serenity => extern struct { + .freebsd, .dragonfly, .netbsd, .openbsd, .illumos, .driverkit, .ios, .macos, .tvos, .watchos, .visionos, .haiku, .serenity => extern struct { addr: [16]u8, ifindex: u32, }, @@ -4071,8 +4068,6 @@ pub const linger = switch (native_os) { .netbsd, // https://github.com/openbsd/src/blob/718a31b40d39fc6064de6355eb144e74633133fc/sys/sys/socket.h#L126 .openbsd, - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/sys/socket.h#L214 - .solaris, // https://github.com/illumos/illumos-gate/blob/608eb926e14f4ba4736b2d59e891335f1cba9e1e/usr/src/uts/common/sys/socket.h#L250 .illumos, // https://github.com/haiku/haiku/blob/2aab5f5f14aeb3f34c3a3d9a9064cc3c0d914bea/headers/posix/sys/socket.h#L87 @@ -4100,7 +4095,6 @@ pub const msghdr = switch (native_os) { .freebsd, .netbsd, .haiku, - .solaris, .illumos, .macos, .driverkit, @@ -4144,7 +4138,6 @@ pub const msghdr_const = switch (native_os) { .freebsd, .netbsd, .haiku, - .solaris, .illumos, .macos, .driverkit, @@ -4190,8 +4183,6 @@ pub const cmsghdr = switch (native_os) { .netbsd, // https://github.com/openbsd/src/blob/master/sys/sys/socket.h#L527 .openbsd, - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/sys/socket.h#L416 - .solaris, // https://github.com/illumos/illumos-gate/blob/afdf2e523873cb523df379676067bf9785a0f456/usr/src/uts/common/sys/socket.h#L460 .illumos, // https://github.com/SerenityOS/serenity/blob/4ee360a348a5e2490eeaeeabb3eb19e70dd450eb/Kernel/API/POSIX/sys/socket.h#L68 @@ -4215,7 +4206,7 @@ pub const cmsghdr = switch (native_os) { pub const nfds_t = switch (native_os) { .linux => linux.nfds_t, .emscripten => emscripten.nfds_t, - .haiku, .solaris, .illumos, .wasi => usize, + .haiku, .illumos, .wasi => usize, .windows => c_ulong, .openbsd, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => u32, // https://github.com/SerenityOS/serenity/blob/265764ff2fec038855193296588a887fc322d76a/Kernel/API/POSIX/poll.h#L32 @@ -4253,7 +4244,7 @@ pub const pollfd = switch (native_os) { pub const rlim_t = switch (native_os) { .linux => linux.rlim_t, .emscripten => emscripten.rlim_t, - .openbsd, .netbsd, .solaris, .illumos, .macos, .ios, .tvos, .watchos, .visionos => u64, + .openbsd, .netbsd, .illumos, .macos, .ios, .tvos, .watchos, .visionos => u64, .haiku, .dragonfly, .freebsd => i64, // https://github.com/SerenityOS/serenity/blob/aae106e37b48f2158e68902293df1e4bf7b80c0f/Userland/Libraries/LibC/sys/resource.h#L54 .serenity => usize, @@ -4307,7 +4298,7 @@ pub const rlimit_resource = switch (native_os) { pub const AS: rlimit_resource = .VMEM; }, - .solaris, .illumos => enum(c_int) { + .illumos => enum(c_int) { CPU = 0, FSIZE = 1, DATA = 2, @@ -4401,7 +4392,7 @@ pub const rusage = switch (native_os) { pub const SELF = 0; pub const CHILDREN = -1; }, - .solaris, .illumos => extern struct { + .illumos => extern struct { utime: timeval, stime: timeval, maxrss: isize, @@ -4510,7 +4501,7 @@ pub const siginfo_t = switch (native_os) { }, }, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { signo: c_int, code: c_int, errno: c_int, @@ -4530,8 +4521,8 @@ pub const siginfo_t = switch (native_os) { stime: clock_t, }, }, - contract: solaris.ctid_t, - zone: solaris.zoneid_t, + contract: illumos.ctid_t, + zone: illumos.zoneid_t, }, fault: extern struct { addr: *allowzero anyopaque, @@ -4642,7 +4633,7 @@ pub const sigset_t = switch (native_os) { // https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L19 .openbsd, .serenity => u32, .macos, .ios, .tvos, .watchos, .visionos => darwin.sigset_t, - .dragonfly, .netbsd, .solaris, .illumos, .freebsd => extern struct { + .dragonfly, .netbsd, .illumos, .freebsd => extern struct { __bits: [SIG.WORDS]u32, }, .haiku => u64, @@ -4681,7 +4672,7 @@ pub const addrinfo = if (builtin.abi.isAndroid()) extern struct { addr: ?*sockaddr, next: ?*addrinfo, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { flags: AI, family: i32, socktype: i32, @@ -4819,7 +4810,7 @@ pub const sockaddr = switch (native_os) { path: [104]u8, }; }, - .solaris, .illumos => extern struct { + .illumos => extern struct { /// address family family: sa_family_t, @@ -5081,7 +5072,7 @@ pub const sa_family_t = switch (native_os) { .windows => ws2_32.ADDRESS_FAMILY, .openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => u8, // https://github.com/SerenityOS/serenity/blob/ac44ec5ebc707f9dd0c3d4759a1e17e91db5d74f/Kernel/API/POSIX/sys/socket.h#L66 - .solaris, .illumos, .serenity => u16, + .illumos, .serenity => u16, else => void, }; pub const AF = if (builtin.abi.isAndroid()) struct { @@ -5219,7 +5210,7 @@ pub const AF = if (builtin.abi.isAndroid()) struct { pub const INET6_SDP = 42; pub const MAX = 42; }, - .solaris, .illumos => struct { + .illumos => struct { pub const UNSPEC = 0; pub const UNIX = 1; pub const LOCAL = UNIX; @@ -5499,7 +5490,7 @@ pub const PF = if (builtin.abi.isAndroid()) struct { pub const INET6_SDP = AF.INET6_SDP; pub const MAX = AF.MAX; }, - .solaris, .illumos => struct { + .illumos => struct { pub const UNSPEC = AF.UNSPEC; pub const UNIX = AF.UNIX; pub const LOCAL = UNIX; @@ -5778,7 +5769,7 @@ pub const MSG = switch (native_os) { pub const FBLOCKING = 0x10000; pub const FNONBLOCKING = 0x20000; }, - .solaris, .illumos => struct { + .illumos => struct { pub const OOB = 0x0001; pub const PEEK = 0x0002; pub const DONTROUTE = 0x0004; @@ -5825,7 +5816,7 @@ pub const SOCK = switch (native_os) { pub const CLOEXEC = 0x10000000; pub const NONBLOCK = 0x20000000; }, - .solaris, .illumos => struct { + .illumos => struct { /// Datagram. pub const DGRAM = 1; /// STREAM. @@ -6155,7 +6146,7 @@ pub const IPPROTO = switch (native_os) { /// Reserved pub const RESERVED_254 = 254; }, - .solaris, .illumos => struct { + .illumos => struct { /// dummy for IP pub const IP = 0; /// Hop by hop header for IPv6 @@ -6514,7 +6505,7 @@ pub const IP = switch (native_os) { .dragonfly => dragonfly.IP, .netbsd => netbsd.IP, .openbsd => openbsd.IP, - .solaris, .illumos => solaris.IP, + .illumos => illumos.IP, .haiku => haiku.IP, .serenity => serenity.IP, else => void, @@ -6525,7 +6516,7 @@ pub const IPV6 = switch (native_os) { .dragonfly => dragonfly.IPV6, .netbsd => netbsd.IPV6, .openbsd => openbsd.IPV6, - .solaris, .illumos => solaris.IPV6, + .illumos => illumos.IPV6, .haiku => haiku.IPV6, .serenity => serenity.IPV6, else => void, @@ -6536,7 +6527,7 @@ pub const IPTOS = switch (native_os) { .dragonfly => dragonfly.IPTOS, .netbsd => netbsd.IPTOS, .openbsd => openbsd.IPTOS, - .solaris, .illumos => solaris.IPTOS, + .illumos => illumos.IPTOS, .haiku => haiku.IPTOS, .serenity => serenity.IPTOS, else => void, @@ -6548,7 +6539,7 @@ pub const SOL = switch (native_os) { .openbsd, .haiku, .dragonfly, .netbsd, .freebsd, .macos, .ios, .tvos, .watchos, .visionos => struct { pub const SOCKET = 0xffff; }, - .solaris, .illumos => struct { + .illumos => struct { pub const SOCKET = 0xffff; pub const ROUTE = 0xfffe; pub const PACKET = 0xfffd; @@ -6632,7 +6623,7 @@ pub const SO = switch (native_os) { pub const MAX_PACING_RATE = 0x1018; pub const DOMAIN = 0x1019; }, - .solaris, .illumos => struct { + .illumos => struct { pub const DEBUG = 0x0001; pub const ACCEPTCONN = 0x0002; pub const REUSEADDR = 0x0004; @@ -6803,7 +6794,7 @@ pub const SOMAXCONN = switch (native_os) { .linux => linux.SOMAXCONN, .windows => ws2_32.SOMAXCONN, // https://github.com/SerenityOS/serenity/blob/ac44ec5ebc707f9dd0c3d4759a1e17e91db5d74f/Kernel/API/POSIX/sys/socket.h#L128 - .solaris, .illumos, .serenity => 128, + .illumos, .serenity => 128, // https://github.com/freebsd/freebsd-src/blob/9ab31f821ad1c6bad474510447387c50bef2c24c/sys/sys/socket.h#L434 // https://github.com/DragonFlyBSD/DragonFlyBSD/blob/fd3d1949d526ffa646e57037770acd6f2f3bb617/sys/sys/socket.h#L393 // https://github.com/NetBSD/src/blob/a673fb3f8487e974c669216064f7588207229fea/sys/sys/socket.h#L472 @@ -6814,9 +6805,8 @@ pub const SOMAXCONN = switch (native_os) { }; pub const SCM = switch (native_os) { .linux, .emscripten => linux.SCM, - // https://github.com/kofemann/opensolaris/blob/80192cd83bf665e708269dae856f9145f7190f74/usr/src/uts/common/sys/socket.h#L172 // https://github.com/illumos/illumos-gate/blob/489f6310fe8952e87fc1dce8af87990fcfd90f18/usr/src/uts/common/sys/socket.h#L196 - .solaris, .illumos => struct { + .illumos => struct { pub const RIGHTS = 0x1010; pub const UCRED = 0x1012; pub const TIMESTAMP = SO.TIMESTAMP; @@ -6874,7 +6864,7 @@ pub const IFNAMESIZE = switch (native_os) { .windows => 30, // 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, - .solaris, .illumos => 32, + .illumos => 32, else => void, }; @@ -6910,7 +6900,7 @@ pub const time_t = switch (native_os) { }; pub const suseconds_t = switch (native_os) { // https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L49 - .solaris, .illumos, .serenity => i64, + .illumos, .serenity => i64, .freebsd, .dragonfly => c_long, .netbsd => c_int, .haiku => i32, @@ -6929,7 +6919,7 @@ pub const timeval = switch (native_os) { usec: i32, }, // https://github.com/SerenityOS/serenity/blob/6b6eca0631c893c5f8cfb8274cdfe18e2d0637c0/Kernel/API/POSIX/sys/time.h#L15-L18 - .dragonfly, .netbsd, .freebsd, .solaris, .illumos, .serenity => extern struct { + .dragonfly, .netbsd, .freebsd, .illumos, .serenity => extern struct { /// seconds sec: time_t, /// microseconds @@ -6963,7 +6953,7 @@ pub const user_desc = switch (native_os) { pub const utsname = switch (native_os) { .linux => linux.utsname, .emscripten => emscripten.utsname, - .solaris, .illumos => extern struct { + .illumos => extern struct { sysname: [256:0]u8, nodename: [256:0]u8, release: [256:0]u8, @@ -7003,7 +6993,7 @@ pub const _errno = switch (native_os) { .wasi, .dragonfly => private.errnoFromThreadLocal, .windows => private._errno, .macos, .ios, .tvos, .watchos, .visionos, .freebsd => private.__error, - .solaris, .illumos => private.___errno, + .illumos => private.___errno, .openbsd, .netbsd => private.__errno, .haiku => haiku._errnop, // https://github.com/SerenityOS/serenity/blob/a353ceecf13b6f156a078e32f1ddf1d21366934c/Userland/Libraries/LibC/errno.h#L33 @@ -7049,7 +7039,7 @@ pub const RTLD = switch (native_os) { NOLOAD: bool = false, _: u18 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { LAZY: bool = false, NOW: bool = false, NOLOAD: bool = false, @@ -7128,7 +7118,7 @@ pub const dirent = switch (native_os) { /// Name of entry. name: [255:0]u8, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { /// Inode number of entry. ino: ino_t, /// Offset of this entry on disk. @@ -7177,7 +7167,7 @@ pub const dirent = switch (native_os) { else => void, }; pub const MAXNAMLEN = switch (native_os) { - .netbsd, .solaris, .illumos => 511, + .netbsd, .illumos => 511, // https://github.com/SerenityOS/serenity/blob/1262a7d1424d0d2e89d80644409721cbf056ab17/Kernel/API/POSIX/dirent.h#L37 .haiku, .serenity => NAME_MAX, .openbsd => 255, @@ -7228,7 +7218,7 @@ pub const AI = if (builtin.abi.isAndroid()) packed struct(u32) { ADDRCONFIG: bool = false, _: u21 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { V4MAPPED: bool = false, ALL: bool = false, ADDRCONFIG: bool = false, @@ -7286,7 +7276,7 @@ pub const NI = switch (native_os) { NUMERICSCOPE: bool = false, _: u23 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { NOFQDN: bool = false, NUMERICHOST: bool = false, NAMEREQD: bool = false, @@ -7396,7 +7386,7 @@ pub const EAI = if (builtin.abi.isAndroid()) enum(c_int) { OVERFLOW = 14, _, }, - .solaris, .illumos => enum(c_int) { + .illumos => enum(c_int) { /// address family for hostname not supported ADDRFAMILY = 1, /// name could not be resolved at this time @@ -7736,7 +7726,7 @@ pub const Stat = switch (native_os) { } }, .freebsd => freebsd.Stat, - .solaris, .illumos => extern struct { + .illumos => extern struct { dev: dev_t, ino: ino_t, mode: mode_t, @@ -7970,7 +7960,7 @@ pub const pthread_mutex_t = switch (native_os) { owner: i32 = -1, owner_count: i32 = 0, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { flag1: u16 = 0, flag2: u8 = 0, ceiling: u8 = 0, @@ -8025,7 +8015,7 @@ pub const pthread_cond_t = switch (native_os) { waiter_count: i32 = 0, lock: i32 = 0, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { flag: [4]u8 = [_]u8{0} ** 4, type: u16 = 0, magic: u16 = 0x4356, @@ -8084,7 +8074,7 @@ pub const pthread_rwlock_t = switch (native_os) { owner: ?pthread_t = null, private: ?*anyopaque = null, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { readers: i32 = 0, type: u16 = 0, magic: u16 = 0x5257, @@ -8118,7 +8108,7 @@ pub const pthread_attr_t = switch (native_os) { .freebsd, .openbsd, .serenity => extern struct { inner: ?*anyopaque = null, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { mutexattr: ?*anyopaque = null, }, .netbsd => extern struct { @@ -8140,7 +8130,7 @@ pub const pthread_key_t = switch (native_os) { .linux, .emscripten => c_uint, .macos, .ios, .tvos, .watchos, .visionos => c_ulong, // https://github.com/SerenityOS/serenity/blob/b98f537f117b341788023ab82e0c11ca9ae29a57/Kernel/API/POSIX/sys/types.h#L65 - .openbsd, .solaris, .illumos, .serenity => c_int, + .openbsd, .illumos, .serenity => c_int, else => void, }; @@ -8180,7 +8170,7 @@ pub const sem_t = switch (native_os) { }, _padding: u32, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { count: u32 = 0, type: u16 = 0, magic: u16 = 0x534d, @@ -8271,12 +8261,12 @@ pub const Kevent = switch (native_os) { }; pub const port_t = switch (native_os) { - .solaris, .illumos => c_int, + .illumos => c_int, else => void, }; pub const port_event = switch (native_os) { - .solaris, .illumos => extern struct { + .illumos => extern struct { events: u32, /// Event source. source: u16, @@ -8364,7 +8354,7 @@ pub const AT = switch (native_os) { pub const REMOVEDIR = 0x04; pub const EACCESS = 0x08; }, - .solaris, .illumos => struct { + .illumos => struct { /// Magic value that specify the use of the current working directory /// to determine the target of relative file paths in the openat() and /// similar syscalls. @@ -8461,7 +8451,7 @@ pub const O = switch (native_os) { // ignored in C code. Thus no mapping in Zig. _: u3 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { ACCMODE: std.posix.ACCMODE = .RDONLY, NDELAY: bool = false, APPEND: bool = false, @@ -8672,7 +8662,7 @@ pub const MAP = switch (native_os) { FIXED_NOREPLACE: bool = false, _: u11 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { TYPE: enum(u4) { SHARED = 0x01, PRIVATE = 0x02, @@ -8869,7 +8859,7 @@ pub const V = switch (native_os) { STOP, SUSP, }, - .solaris, .illumos => enum { + .illumos => enum { INTR, QUIT, ERASE, @@ -8936,7 +8926,7 @@ pub const NCCS = switch (native_os) { .linux => linux.NCCS, .macos, .ios, .tvos, .watchos, .visionos, .freebsd, .netbsd, .openbsd, .dragonfly => 20, .haiku => 11, - .solaris, .illumos => 19, + .illumos => 19, // https://github.com/SerenityOS/serenity/blob/d277cdfd4c7ed21d5248a83217ae03b9f890c3c8/Kernel/API/POSIX/termios.h#L15 .emscripten, .wasi, .serenity => 32, else => void, @@ -8973,7 +8963,7 @@ pub const termios = switch (native_os) { ospeed: speed_t, cc: [NCCS]cc_t, }, - .solaris, .illumos => extern struct { + .illumos => extern struct { iflag: tc_iflag_t, oflag: tc_oflag_t, cflag: tc_cflag_t, @@ -9063,7 +9053,7 @@ pub const tc_iflag_t = switch (native_os) { IXOFF: bool = false, _: u19 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { IGNBRK: bool = false, BRKINT: bool = false, IGNPAR: bool = false, @@ -9156,7 +9146,7 @@ pub const tc_oflag_t = switch (native_os) { ONLRET: bool = false, _: u25 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { OPOST: bool = false, OLCUC: bool = false, ONLCR: bool = false, @@ -9303,7 +9293,7 @@ pub const tc_cflag_t = switch (native_os) { RTSFLOW: bool = false, _: u17 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { _0: u4 = 0, CSIZE: CSIZE = .CS5, CSTOPB: bool = false, @@ -9441,7 +9431,7 @@ pub const tc_lflag_t = switch (native_os) { PENDIN: bool = false, _: u17 = 0, }, - .solaris, .illumos => packed struct(u32) { + .illumos => packed struct(u32) { ISIG: bool = false, ICANON: bool = false, XCASE: bool = false, @@ -9609,7 +9599,7 @@ pub const speed_t = switch (native_os) { B230400 = 0x12, B31250 = 0x13, }, - .solaris, .illumos => enum(c_uint) { + .illumos => enum(c_uint) { B0 = 0, B50 = 1, B75 = 2, @@ -9696,7 +9686,7 @@ pub const NSIG = switch (native_os) { .haiku => 65, .netbsd, .freebsd => 32, .macos => darwin.NSIG, - .solaris, .illumos => 75, + .illumos => 75, // https://github.com/SerenityOS/serenity/blob/046c23f567a17758d762a33bdf04bacbfd088f9f/Kernel/API/POSIX/signal_numbers.h#L42 .openbsd, .serenity => 33, else => {}, @@ -9709,7 +9699,7 @@ pub const MINSIGSTKSZ = switch (native_os) { .arm, .aarch64 => 4096, else => @compileError("unsupported arch"), }, - .solaris, .illumos => 2048, + .illumos => 2048, .haiku, .netbsd => 8192, .openbsd => 1 << openbsd.MAX_PAGE_SHIFT, // https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L58 @@ -9719,7 +9709,7 @@ pub const MINSIGSTKSZ = switch (native_os) { pub const SIGSTKSZ = switch (native_os) { .macos, .ios, .tvos, .watchos, .visionos => 131072, .netbsd, .freebsd => MINSIGSTKSZ + 32768, - .solaris, .illumos => 8192, + .illumos => 8192, .haiku => 16384, .openbsd => MINSIGSTKSZ + (1 << openbsd.MAX_PAGE_SHIFT) * 4, // https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L59 @@ -9733,7 +9723,7 @@ pub const SS = switch (native_os) { pub const DISABLE = 4; }, // https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/signal.h#L54-L55 - .haiku, .solaris, .illumos, .serenity => struct { + .haiku, .illumos, .serenity => struct { pub const ONSTACK = 0x1; pub const DISABLE = 0x2; }, @@ -10314,7 +10304,7 @@ pub extern "c" fn setrlimit64(resource: rlimit_resource, rlim: *const rlimit) c_ pub const arc4random_buf = switch (native_os) { .linux => if (builtin.abi.isAndroid()) private.arc4random_buf else {}, - .dragonfly, .netbsd, .freebsd, .solaris, .illumos, .openbsd, .serenity, .macos, .ios, .tvos, .watchos, .visionos => private.arc4random_buf, + .dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .serenity, .macos, .ios, .tvos, .watchos, .visionos => private.arc4random_buf, else => {}, }; pub const getentropy = switch (native_os) { @@ -10383,7 +10373,7 @@ pub const sigaltstack = switch (native_os) { pub extern "c" fn memfd_create(name: [*:0]const u8, flags: c_uint) c_int; pub const pipe2 = switch (native_os) { - .dragonfly, .emscripten, .netbsd, .freebsd, .solaris, .illumos, .openbsd, .linux, .serenity => private.pipe2, + .dragonfly, .emscripten, .netbsd, .freebsd, .illumos, .openbsd, .linux, .serenity => private.pipe2, else => {}, }; pub const copy_file_range = switch (native_os) { @@ -10443,12 +10433,12 @@ pub const munlock = switch (native_os) { }; pub const mlockall = switch (native_os) { - .linux, .freebsd, .dragonfly, .netbsd, .openbsd, .solaris, .illumos => private.mlockall, + .linux, .freebsd, .dragonfly, .netbsd, .openbsd, .illumos => private.mlockall, else => {}, }; pub const munlockall = switch (native_os) { - .linux, .freebsd, .dragonfly, .netbsd, .openbsd, .solaris, .illumos => private.munlockall, + .linux, .freebsd, .dragonfly, .netbsd, .openbsd, .illumos => private.munlockall, else => {}, }; @@ -10491,7 +10481,7 @@ pub fn sigrtmin() u8 { return switch (native_os) { .freebsd => 65, .netbsd => 33, - .solaris, .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MIN))), + .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MIN))), else => @truncate(@as(c_uint, @bitCast(private.__libc_current_sigrtmin()))), }; } @@ -10501,7 +10491,7 @@ pub fn sigrtmax() u8 { return switch (native_os) { .freebsd => 126, .netbsd => 63, - .solaris, .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MAX))), + .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MAX))), else => @truncate(@as(c_uint, @bitCast(private.__libc_current_sigrtmax()))), }; } @@ -10556,11 +10546,11 @@ pub const malloc_usable_size = switch (native_os) { else => {}, }; pub const posix_memalign = switch (native_os) { - .dragonfly, .netbsd, .freebsd, .solaris, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => private.posix_memalign, + .dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => private.posix_memalign, else => {}, }; pub const sysconf = switch (native_os) { - .solaris => solaris.sysconf, + .illumos => illumos.sysconf, else => private.sysconf, }; @@ -10629,7 +10619,6 @@ pub const fork = switch (native_os) { .macos, .netbsd, .openbsd, - .solaris, .illumos, .tvos, .watchos, @@ -10777,7 +10766,7 @@ pub extern "c" fn pthread_setspecific(key: pthread_key_t, value: ?*anyopaque) c_ 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) { .macos, .ios, .tvos, .watchos, .visionos => darwin.pthread_setname_np, - .solaris, .illumos => solaris.pthread_setname_np, + .illumos => illumos.pthread_setname_np, .netbsd => netbsd.pthread_setname_np, else => private.pthread_setname_np, }; @@ -10987,33 +10976,33 @@ pub extern "c" fn pthread_get_name_np(thread: pthread_t, name: [*:0]u8, len: usi // OS-specific bits. These are protected from being used on the wrong OS by // comptime assertions inside each OS-specific file. -pub const AF_SUN = solaris.AF_SUN; -pub const AT_SUN = solaris.AT_SUN; -pub const FILE_EVENT = solaris.FILE_EVENT; -pub const GETCONTEXT = solaris.GETCONTEXT; -pub const GETUSTACK = solaris.GETUSTACK; -pub const PORT_ALERT = solaris.PORT_ALERT; -pub const PORT_SOURCE = solaris.PORT_SOURCE; -pub const POSIX_FADV = solaris.POSIX_FADV; -pub const SETCONTEXT = solaris.SETCONTEXT; -pub const SETUSTACK = solaris.GETUSTACK; -pub const SFD = solaris.SFD; -pub const ctid_t = solaris.ctid_t; -pub const file_obj = solaris.file_obj; -pub const id_t = solaris.id_t; -pub const lif_ifinfo_req = solaris.lif_ifinfo_req; -pub const lif_nd_req = solaris.lif_nd_req; -pub const lifreq = solaris.lifreq; -pub const major_t = solaris.major_t; -pub const minor_t = solaris.minor_t; -pub const poolid_t = solaris.poolid_t; -pub const port_notify = solaris.port_notify; -pub const priority = solaris.priority; -pub const procfs = solaris.procfs; -pub const projid_t = solaris.projid_t; -pub const signalfd_siginfo = solaris.signalfd_siginfo; -pub const taskid_t = solaris.taskid_t; -pub const zoneid_t = solaris.zoneid_t; +pub const AF_SUN = illumos.AF_SUN; +pub const AT_SUN = illumos.AT_SUN; +pub const FILE_EVENT = illumos.FILE_EVENT; +pub const GETCONTEXT = illumos.GETCONTEXT; +pub const GETUSTACK = illumos.GETUSTACK; +pub const PORT_ALERT = illumos.PORT_ALERT; +pub const PORT_SOURCE = illumos.PORT_SOURCE; +pub const POSIX_FADV = illumos.POSIX_FADV; +pub const SETCONTEXT = illumos.SETCONTEXT; +pub const SETUSTACK = illumos.GETUSTACK; +pub const SFD = illumos.SFD; +pub const ctid_t = illumos.ctid_t; +pub const file_obj = illumos.file_obj; +pub const id_t = illumos.id_t; +pub const lif_ifinfo_req = illumos.lif_ifinfo_req; +pub const lif_nd_req = illumos.lif_nd_req; +pub const lifreq = illumos.lifreq; +pub const major_t = illumos.major_t; +pub const minor_t = illumos.minor_t; +pub const poolid_t = illumos.poolid_t; +pub const port_notify = illumos.port_notify; +pub const priority = illumos.priority; +pub const procfs = illumos.procfs; +pub const projid_t = illumos.projid_t; +pub const signalfd_siginfo = illumos.signalfd_siginfo; +pub const taskid_t = illumos.taskid_t; +pub const zoneid_t = illumos.zoneid_t; pub const DirEnt = haiku.DirEnt; pub const _get_next_area_info = haiku._get_next_area_info; @@ -11361,7 +11350,7 @@ const private = struct { extern "c" fn getdirentries(fd: fd_t, buf_ptr: [*]u8, nbytes: usize, basep: *i64) isize; extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) switch (native_os) { .freebsd => isize, - .solaris, .illumos => usize, + .illumos => usize, else => c_int, }; extern "c" fn getrusage(who: c_int, usage: *rusage) c_int; diff --git a/lib/std/c/solaris.zig b/lib/std/c/illumos.zig similarity index 99% rename from lib/std/c/solaris.zig rename to lib/std/c/illumos.zig index e69c77dac7f6..694b7de5ece0 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/illumos.zig @@ -16,7 +16,7 @@ const uid_t = std.c.uid_t; const IFNAMESIZE = std.c.IFNAMESIZE; comptime { - assert(builtin.os.tag == .solaris or builtin.os.tag == .illumos); // Prevent access of std.c symbols on wrong OS. + assert(builtin.os.tag == .illumos); // Prevent access of std.c symbols on wrong OS. } pub extern "c" fn pthread_setname_np(thread: pthread_t, name: [*:0]const u8, arg: ?*anyopaque) c_int; diff --git a/lib/std/crypto/Certificate/Bundle.zig b/lib/std/crypto/Certificate/Bundle.zig index 437f7a224c36..dd65b4cc4a6a 100644 --- a/lib/std/crypto/Certificate/Bundle.zig +++ b/lib/std/crypto/Certificate/Bundle.zig @@ -63,7 +63,7 @@ pub fn rescan(cb: *Bundle, gpa: Allocator) RescanError!void { .freebsd, .openbsd => return rescanWithPath(cb, gpa, "/etc/ssl/cert.pem"), .netbsd => return rescanWithPath(cb, gpa, "/etc/openssl/certs/ca-certificates.crt"), .dragonfly => return rescanWithPath(cb, gpa, "/usr/local/etc/ssl/cert.pem"), - .solaris, .illumos => return rescanWithPath(cb, gpa, "/etc/ssl/cacert.pem"), + .illumos => return rescanWithPath(cb, gpa, "/etc/ssl/cacert.pem"), .haiku => return rescanWithPath(cb, gpa, "/boot/system/data/ssl/CARootCertificates.pem"), // https://github.com/SerenityOS/serenity/blob/222acc9d389bc6b490d4c39539761b043a4bfcb0/Ports/ca-certificates/package.sh#L19 .serenity => return rescanWithPath(cb, gpa, "/etc/ssl/certs/ca-certificates.crt"), diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 57d6f45111ee..f6287135e508 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1368,7 +1368,6 @@ pub const have_segfault_handling_support = switch (native_os) { .watchos, .illumos, - .solaris, .windows, => true, @@ -1471,7 +1470,6 @@ fn handleSegfaultPosix(sig: i32, info: *const posix.siginfo_t, ctx_ptr: ?*anyopa .openbsd, => @intFromPtr(info.data.fault.addr), .illumos, - .solaris, => @intFromPtr(info.reason.fault.addr), else => comptime unreachable, }; diff --git a/lib/std/debug/SelfInfo/Elf.zig b/lib/std/debug/SelfInfo/Elf.zig index d9f48281dee9..0f3c46e98095 100644 --- a/lib/std/debug/SelfInfo/Elf.zig +++ b/lib/std/debug/SelfInfo/Elf.zig @@ -160,9 +160,6 @@ pub const can_unwind: bool = s: { .x86, .x86_64, }, - .solaris => &.{ - .x86_64, - }, else => unreachable, }; diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig index bf1edd83c84a..94293254ecf5 100644 --- a/lib/std/debug/cpu_context.zig +++ b/lib/std/debug/cpu_context.zig @@ -961,7 +961,6 @@ const Powerpc = extern struct { // * System V Application Binary Interface - PowerPC Processor Supplement §3-46 // * Power Architecture 32-bit Application Binary Interface Supplement 1.0 - Linux & Embedded §3.4 // * 64-bit ELF V2 ABI Specification - Power Architecture Revision 1.5 §2.4 - // * ??? AIX? // // Are we having fun yet? @@ -1936,40 +1935,6 @@ const signal_ucontext_t = switch (native_os) { else => unreachable, }, }, - // This needs to be audited by someone with access to the Solaris headers. - .solaris => switch (native_arch) { - .sparc64 => @compileError("sparc64-solaris ucontext_t missing"), - .x86_64 => extern struct { - _flags: u64, - _link: ?*signal_ucontext_t, - _sigmask: std.c.sigset_t, - _stack: std.c.stack_t, - mcontext: extern struct { - r15: u64, - r14: u64, - r13: u64, - r12: u64, - r11: u64, - r10: u64, - r9: u64, - r8: u64, - rdi: u64, - rsi: u64, - rbp: u64, - rbx: u64, - rdx: u64, - rcx: u64, - rax: u64, - _trapno: i64, - _err: i64, - rip: u64, - _cs: i64, - _rflags: i64, - rsp: u64, - }, - }, - else => unreachable, - }, // https://github.com/illumos/illumos-gate/blob/d4ce137bba3bd16823db6374d9e9a643264ce245/usr/src/uts/intel/sys/ucontext.h .illumos => extern struct { _flags: usize, diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index 9504242cd578..92aea780bfbc 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -16,7 +16,7 @@ pub const DynLib = struct { else DlDynLib, .windows => WindowsDynLib, - .macos, .tvos, .watchos, .ios, .visionos, .freebsd, .netbsd, .openbsd, .dragonfly, .solaris, .illumos => DlDynLib, + .macos, .tvos, .watchos, .ios, .visionos, .freebsd, .netbsd, .openbsd, .dragonfly, .illumos => DlDynLib, else => struct { const open = @compileError("unsupported platform"); const openZ = @compileError("unsupported platform"); @@ -672,7 +672,7 @@ pub const DlDynLib = struct { test "dynamic_library" { const libname = switch (native_os) { - .linux, .freebsd, .openbsd, .solaris, .illumos => "invalid_so.so", + .linux, .freebsd, .openbsd, .illumos => "invalid_so.so", .windows => "invalid_dll.dll", .macos, .tvos, .watchos, .ios, .visionos => "invalid_dylib.dylib", else => return error.SkipZigTest, diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 6bfc41cd792b..652480914f5d 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -51,7 +51,7 @@ pub const GetAppDataDirError = @import("fs/get_app_data_dir.zig").GetAppDataDirE /// * On other platforms, `[]u8` file paths are opaque sequences of bytes with /// no particular encoding. pub const max_path_bytes = switch (native_os) { - .linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .haiku, .solaris, .illumos, .plan9, .emscripten, .wasi, .serenity => posix.PATH_MAX, + .linux, .macos, .ios, .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. // 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. @@ -72,7 +72,7 @@ pub const max_path_bytes = switch (native_os) { /// 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. pub const max_name_bytes = switch (native_os) { - .linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .solaris, .illumos, .serenity => posix.NAME_MAX, + .linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .illumos, .serenity => posix.NAME_MAX, // Haiku's NAME_MAX includes the null terminator, so subtract one. .haiku => posix.NAME_MAX - 1, // Each WTF-16LE character may be expanded to 3 WTF-8 bytes. @@ -571,7 +571,7 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 { error.NetworkNotFound => unreachable, // Windows-only else => |e| return e, }, - .solaris, .illumos => return posix.readlinkZ("/proc/self/path/a.out", out_buffer) catch |err| switch (err) { + .illumos => return posix.readlinkZ("/proc/self/path/a.out", out_buffer) catch |err| switch (err) { error.InvalidUtf8 => unreachable, // WASI-only error.InvalidWtf8 => unreachable, // Windows-only error.UnsupportedReparsePointType => unreachable, // Windows-only diff --git a/lib/std/fs/Dir.zig b/lib/std/fs/Dir.zig index 67f0c0d724b8..14b26c89bd5a 100644 --- a/lib/std/fs/Dir.zig +++ b/lib/std/fs/Dir.zig @@ -39,7 +39,7 @@ const IteratorError = error{ } || posix.UnexpectedError; pub const Iterator = switch (native_os) { - .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris, .illumos => struct { + .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => struct { dir: Dir, seek: i64, buf: [1024]u8 align(@alignOf(posix.system.dirent)), @@ -57,7 +57,7 @@ pub const Iterator = switch (native_os) { switch (native_os) { .macos, .ios => return self.nextDarwin(), .freebsd, .netbsd, .dragonfly, .openbsd => return self.nextBsd(), - .solaris, .illumos => return self.nextSolaris(), + .illumos => return self.nextIllumos(), else => @compileError("unimplemented"), } } @@ -116,7 +116,7 @@ pub const Iterator = switch (native_os) { } } - fn nextSolaris(self: *Self) !?Entry { + fn nextIllumos(self: *Self) !?Entry { start_over: while (true) { if (self.index >= self.end_index) { if (self.first_iter) { @@ -144,7 +144,7 @@ pub const Iterator = switch (native_os) { if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..")) continue :start_over; - // Solaris dirent doesn't expose type, so we have to call stat to get it. + // illumos dirent doesn't expose type, so we have to call stat to get it. const stat_info = posix.fstatat( self.dir.fd, name, @@ -619,7 +619,6 @@ fn iterateImpl(self: Dir, first_iter_start_value: bool) Iterator { .netbsd, .dragonfly, .openbsd, - .solaris, .illumos, => return Iterator{ .dir = self, @@ -1770,7 +1769,7 @@ pub fn deleteFileZ(self: Dir, sub_path_c: [*:0]const u8) DeleteFileError!void { error.AccessDenied, error.PermissionDenied => |e| switch (native_os) { // 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 - .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris, .illumos => { + .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos => { // 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 is_dir = fstat.mode & posix.S.IFMT == posix.S.IFDIR; diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig index 169f3f5222bf..ebc380987822 100644 --- a/lib/std/fs/File.zig +++ b/lib/std/fs/File.zig @@ -444,7 +444,7 @@ pub const Stat = struct { posix.S.IFSOCK => break :k .unix_domain_socket, else => {}, } - if (builtin.os.tag.isSolarish()) switch (m) { + if (builtin.os.tag == .illumos) switch (m) { posix.S.IFDOOR => break :k .door, posix.S.IFPORT => break :k .event_port, else => {}, diff --git a/lib/std/fs/get_app_data_dir.zig b/lib/std/fs/get_app_data_dir.zig index a256758a07e2..05b115956cee 100644 --- a/lib/std/fs/get_app_data_dir.zig +++ b/lib/std/fs/get_app_data_dir.zig @@ -30,7 +30,7 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi }; return fs.path.join(allocator, &[_][]const u8{ home_dir, "Library", "Application Support", appname }); }, - .linux, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris, .illumos, .serenity => { + .linux, .freebsd, .netbsd, .dragonfly, .openbsd, .illumos, .serenity => { if (posix.getenv("XDG_DATA_HOME")) |xdg| { if (xdg.len > 0) { return fs.path.join(allocator, &[_][]const u8{ xdg, appname }); diff --git a/lib/std/heap.zig b/lib/std/heap.zig index 5f183133f34e..24d84c83c258 100644 --- a/lib/std/heap.zig +++ b/lib/std/heap.zig @@ -155,7 +155,7 @@ const CAllocator = struct { else {}; pub const supports_posix_memalign = switch (builtin.os.tag) { - .dragonfly, .netbsd, .freebsd, .solaris, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => true, + .dragonfly, .netbsd, .freebsd, .illumos, .openbsd, .linux, .macos, .ios, .tvos, .watchos, .visionos, .serenity => true, else => false, }; @@ -768,7 +768,7 @@ const page_size_min_default: ?usize = switch (builtin.os.tag) { .sparc64 => 8 << 10, else => null, }, - .solaris, .illumos => switch (builtin.cpu.arch) { + .illumos => switch (builtin.cpu.arch) { // src/uts/*/sys/machparam.h .x86, .x86_64 => 4 << 10, .sparc, .sparc64 => 8 << 10, @@ -926,7 +926,7 @@ const page_size_max_default: ?usize = switch (builtin.os.tag) { .sparc64 => 8 << 10, else => null, }, - .solaris, .illumos => switch (builtin.cpu.arch) { + .illumos => switch (builtin.cpu.arch) { // src/uts/*/sys/machparam.h .x86, .x86_64 => 4 << 10, .sparc, .sparc64 => 8 << 10, diff --git a/lib/std/os.zig b/lib/std/os.zig index f2519a62e902..a3d659d4cad1 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -80,7 +80,6 @@ pub fn isGetFdPathSupportedOnTarget(os: std.Target.Os) bool { .tvos, .visionos, .linux, - .solaris, .illumos, .freebsd, .serenity, @@ -147,7 +146,7 @@ pub fn getFdPath(fd: std.posix.fd_t, out_buffer: *[max_path_bytes]u8) std.posix. }; return target; }, - .solaris, .illumos => { + .illumos => { var procfs_buf: ["/proc/self/path/-2147483648\x00".len]u8 = undefined; const proc_path = std.fmt.bufPrintSentinel(procfs_buf[0..], "/proc/self/path/{d}", .{fd}, 0) catch unreachable; diff --git a/lib/std/posix.zig b/lib/std/posix.zig index dd38f8202d1b..e602b47c7b0b 100644 --- a/lib/std/posix.zig +++ b/lib/std/posix.zig @@ -6035,7 +6035,7 @@ pub fn sigaction(sig: u8, noalias act: ?*const Sigaction, noalias oact: ?*Sigact switch (errno(system.sigaction(sig, act, oact))) { .SUCCESS => return, // EINVAL means the signal is either invalid or some signal that cannot have its action - // changed. For POSIX, this means SIGKILL/SIGSTOP. For e.g. Solaris, this also includes the + // changed. For POSIX, this means SIGKILL/SIGSTOP. For e.g. illumos, this also includes the // non-standard SIGWAITING, SIGCANCEL, and SIGLWP. Either way, programmer error. .INVAL => unreachable, else => unreachable, @@ -7414,7 +7414,6 @@ pub fn ptrace(request: u32, pid: pid_t, addr: usize, data: usize) PtraceError!vo .wasi, .emscripten, .haiku, - .solaris, .illumos, .plan9, => @compileError("ptrace unsupported by target OS"), diff --git a/lib/std/posix/test.zig b/lib/std/posix/test.zig index ed329c911ee7..50ffd7998fd2 100644 --- a/lib/std/posix/test.zig +++ b/lib/std/posix/test.zig @@ -186,7 +186,7 @@ test "linkat with different directories" { if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // `nstat.nlink` assertion is failing with LLVM 20+ for unclear reasons. switch (native_os) { - .wasi, .linux, .solaris, .illumos => {}, + .wasi, .linux, .illumos => {}, else => return error.SkipZigTest, } @@ -558,7 +558,7 @@ test "fcntl" { test "signalfd" { switch (native_os) { - .linux, .solaris, .illumos => {}, + .linux, .illumos => {}, else => return error.SkipZigTest, } _ = &posix.signalfd; @@ -577,7 +577,7 @@ test "sync" { test "fsync" { switch (native_os) { - .linux, .windows, .solaris, .illumos => {}, + .linux, .windows, .illumos => {}, else => return error.SkipZigTest, } @@ -708,7 +708,7 @@ test "sigset add/del" { test "dup & dup2" { switch (native_os) { - .linux, .solaris, .illumos => {}, + .linux, .illumos => {}, else => return error.SkipZigTest, } diff --git a/lib/std/process.zig b/lib/std/process.zig index 989e64085967..eb748e3b3ee4 100644 --- a/lib/std/process.zig +++ b/lib/std/process.zig @@ -1539,7 +1539,6 @@ pub fn getUserInfo(name: []const u8) !UserInfo { .netbsd, .openbsd, .haiku, - .solaris, .illumos, .serenity, => posixGetUserInfo(name), diff --git a/lib/std/start.zig b/lib/std/start.zig index 4cf2a0956b97..69207e690db3 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -761,7 +761,7 @@ fn maybeIgnoreSigpipe() void { const have_sigpipe_support = switch (builtin.os.tag) { .linux, .plan9, - .solaris, + .illumos, .netbsd, .openbsd, .haiku, diff --git a/lib/std/zig/LibCInstallation.zig b/lib/std/zig/LibCInstallation.zig index 0414d32ee7d6..f6d381be8252 100644 --- a/lib/std/zig/LibCInstallation.zig +++ b/lib/std/zig/LibCInstallation.zig @@ -198,7 +198,7 @@ pub fn findNative(args: FindNativeOptions) FindError!LibCInstallation { try self.findNativeIncludeDirPosix(args); try self.findNativeGccDirHaiku(args); self.crt_dir = try args.allocator.dupeZ(u8, "/system/develop/lib"); - } else if (builtin.target.os.tag.isSolarish()) { + } else if (builtin.target.os.tag == .illumos) { // There is only one libc, and its headers/libraries are always in the same spot. self.include_dir = try args.allocator.dupeZ(u8, "/usr/include"); self.sys_include_dir = try args.allocator.dupeZ(u8, "/usr/include"); @@ -935,7 +935,7 @@ pub const CrtBasenames = struct { .crtn = "crtn.o", }, }, - .solaris, .illumos => switch (mode) { + .illumos => switch (mode) { .dynamic_lib => .{ .crti = "crti.o", .crtn = "crtn.o", diff --git a/lib/std/zig/system.zig b/lib/std/zig/system.zig index f5fae5581a70..0324e7670f16 100644 --- a/lib/std/zig/system.zig +++ b/lib/std/zig/system.zig @@ -228,7 +228,7 @@ pub fn resolveTargetQuery(query: Target.Query) DetectError!Target { error.InvalidVersion => {}, } }, - .solaris, .illumos => { + .illumos => { const uts = posix.uname(); const release = mem.sliceTo(&uts.release, 0); if (std.SemanticVersion.parse(release)) |ver| { @@ -1058,13 +1058,13 @@ fn detectAbiAndDynamicLinker( ) DetectError!Target { const native_target_has_ld = comptime Target.DynamicLinker.kind(builtin.os.tag) != .none; const is_linux = builtin.target.os.tag == .linux; - const is_solarish = builtin.target.os.tag.isSolarish(); + const is_illumos = builtin.target.os.tag == .illumos; const is_darwin = builtin.target.os.tag.isDarwin(); const have_all_info = query.dynamic_linker.get() != null and query.abi != null and (!is_linux or query.abi.?.isGnu()); const os_is_non_native = query.os_tag != null; - // The Solaris/illumos environment is always the same. - if (!native_target_has_ld or have_all_info or os_is_non_native or is_solarish or is_darwin) { + // The illumos environment is always the same. + if (!native_target_has_ld or have_all_info or os_is_non_native or is_illumos or is_darwin) { return defaultAbiAndDynamicLinker(cpu, os, query); } if (query.abi) |abi| { diff --git a/lib/std/zig/system/NativePaths.zig b/lib/std/zig/system/NativePaths.zig index 47af64bc964d..c459981dd6fe 100644 --- a/lib/std/zig/system/NativePaths.zig +++ b/lib/std/zig/system/NativePaths.zig @@ -99,7 +99,7 @@ pub fn detect(arena: Allocator, native_target: *const std.Target) !NativePaths { return self; } - if (builtin.os.tag.isSolarish()) { + if (builtin.os.tag == .illumos) { try self.addLibDir("/usr/lib/64"); try self.addLibDir("/usr/local/lib/64"); try self.addLibDir("/lib/64"); diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index c94951dfa2a4..42fa18da404c 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -211,7 +211,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8 .linux => "linux", .netbsd => "netbsd", .openbsd => "openbsd", - .solaris, .illumos => "solaris", + .illumos => "solaris", .windows, .uefi => "windows", .zos => "zos", .haiku => "haiku", diff --git a/src/link/Elf.zig b/src/link/Elf.zig index de506700fa04..2537332c2832 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1561,7 +1561,7 @@ pub fn writeElfHeader(self: *Elf) !void { else => switch (target.os.tag) { .freebsd, .ps4 => .FREEBSD, .hermit => .STANDALONE, - .illumos, .solaris => .SOLARIS, + .illumos => .SOLARIS, .openbsd => .OPENBSD, else => .NONE, }, diff --git a/src/link/Elf2.zig b/src/link/Elf2.zig index 9c8fc5fdc19a..a050e361b55b 100644 --- a/src/link/Elf2.zig +++ b/src/link/Elf2.zig @@ -417,7 +417,7 @@ fn create( else => .NONE, .freestanding, .other => .STANDALONE, .netbsd => .NETBSD, - .solaris => .SOLARIS, + .illumos => .SOLARIS, .aix => .AIX, .freebsd => .FREEBSD, .cuda => .CUDA, diff --git a/src/target.zig b/src/target.zig index 79e647e641b4..858e6f7634ff 100644 --- a/src/target.zig +++ b/src/target.zig @@ -129,13 +129,13 @@ pub fn hasValgrindSupport(target: *const std.Target, backend: std.builtin.Compil else => false, }, .x86 => switch (target.os.tag) { - .linux, .freebsd, .solaris, .illumos => true, + .linux, .freebsd, .illumos => true, .windows => !ofmt_c_msvc, else => false, }, .x86_64 => switch (target.os.tag) { .linux => target.abi != .gnux32 and target.abi != .muslx32, - .freebsd, .solaris, .illumos => true, + .freebsd, .illumos => true, .windows => !ofmt_c_msvc, else => false, }, @@ -257,7 +257,7 @@ pub fn hasNewLinkerSupport(ofmt: std.Target.ObjectFormat, backend: std.builtin.C pub fn selfHostedBackendIsAsRobustAsLlvm(target: *const std.Target) bool { if (target.cpu.arch.isSpirV()) return true; if (target.cpu.arch == .x86_64 and target.ptrBitWidth() == 64) { - if (target.os.tag.isSolarish()) { + if (target.os.tag == .illumos) { // https://github.com/ziglang/zig/issues/25699 return false; } @@ -428,8 +428,7 @@ pub fn libcFullLinkFlags(target: *const std.Target) []const []const u8 { // c compilers such as gcc or clang use. const result: []const []const u8 = switch (target.os.tag) { .dragonfly, .freebsd, .netbsd, .openbsd => &.{ "-lm", "-lpthread", "-lc", "-lutil" }, - // Solaris releases after 10 merged the threading libraries into libc. - .solaris, .illumos => &.{ "-lm", "-lsocket", "-lnsl", "-lc" }, + .illumos => &.{ "-lm", "-lsocket", "-lnsl", "-lc" }, .haiku => &.{ "-lm", "-lroot", "-lpthread", "-lc", "-lnetwork" }, .linux => switch (target.abi) { .android, .androideabi, .ohos, .ohoseabi => &.{ "-lm", "-lc", "-ldl" }, diff --git a/test/llvm_targets.zig b/test/llvm_targets.zig index f111b33f314d..4fc41b532ff3 100644 --- a/test/llvm_targets.zig +++ b/test/llvm_targets.zig @@ -254,7 +254,6 @@ const targets = [_]std.Target.Query{ .{ .cpu_arch = .sparc64, .os_tag = .netbsd, .abi = .none }, .{ .cpu_arch = .sparc64, .os_tag = .openbsd, .abi = .none }, .{ .cpu_arch = .sparc64, .os_tag = .rtems, .abi = .none }, - .{ .cpu_arch = .sparc64, .os_tag = .solaris, .abi = .none }, .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabi }, .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabihf }, @@ -338,7 +337,6 @@ const targets = [_]std.Target.Query{ .{ .cpu_arch = .x86_64, .os_tag = .openbsd, .abi = .none }, .{ .cpu_arch = .x86_64, .os_tag = .rtems, .abi = .none }, .{ .cpu_arch = .x86_64, .os_tag = .serenity, .abi = .none }, - .{ .cpu_arch = .x86_64, .os_tag = .solaris, .abi = .none }, .{ .cpu_arch = .x86_64, .os_tag = .tvos, .abi = .simulator }, .{ .cpu_arch = .x86_64, .os_tag = .uefi, .abi = .none }, .{ .cpu_arch = .x86_64, .os_tag = .visionos, .abi = .simulator }, diff --git a/test/src/ErrorTrace.zig b/test/src/ErrorTrace.zig index 3c781e3a3a88..bd3febef0e7a 100644 --- a/test/src/ErrorTrace.zig +++ b/test/src/ErrorTrace.zig @@ -41,7 +41,7 @@ pub fn addCase(self: *ErrorTrace, case: Case) void { fn shouldTestNonLlvm(target: *const std.Target) bool { return switch (target.cpu.arch) { .x86_64 => switch (target.ofmt) { - .elf => !target.os.tag.isBSD() and !target.os.tag.isSolarish(), + .elf => !target.os.tag.isBSD() and target.os.tag != .illumos, else => false, }, else => false, diff --git a/test/src/StackTrace.zig b/test/src/StackTrace.zig index 721db139c2d4..8b2d514010fc 100644 --- a/test/src/StackTrace.zig +++ b/test/src/StackTrace.zig @@ -46,7 +46,7 @@ fn addCaseTarget( ) void { const both_backends = switch (target.result.cpu.arch) { .x86_64 => switch (target.result.ofmt) { - .elf => !target.result.os.tag.isBSD() and !target.result.os.tag.isSolarish(), + .elf => !target.result.os.tag.isBSD() and target.result.os.tag != .illumos, else => false, }, else => false, diff --git a/test/standalone/posix/relpaths.zig b/test/standalone/posix/relpaths.zig index c6e0418ec653..f7ced28cdbf1 100644 --- a/test/standalone/posix/relpaths.zig +++ b/test/standalone/posix/relpaths.zig @@ -50,7 +50,7 @@ fn test_symlink(a: std.mem.Allocator, tmp: std.testing.TmpDir) !void { fn test_link(tmp: std.testing.TmpDir) !void { switch (builtin.target.os.tag) { - .linux, .solaris, .illumos => {}, + .linux, .illumos => {}, else => return, } diff --git a/test/tests.zig b/test/tests.zig index d83c95956a45..a6931c408f4f 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -2493,7 +2493,7 @@ pub fn wouldUseLlvm(use_llvm: ?bool, query: std.Target.Query, optimize_mode: Opt const cpu_arch = query.cpu_arch orelse builtin.cpu.arch; const os_tag = query.os_tag orelse builtin.os.tag; switch (cpu_arch) { - .x86_64 => if (os_tag.isBSD() or os_tag.isSolarish() or std.Target.ptrBitWidth_arch_abi(cpu_arch, query.abi orelse .none) != 64) return true, + .x86_64 => if (os_tag.isBSD() or os_tag == .illumos or std.Target.ptrBitWidth_arch_abi(cpu_arch, query.abi orelse .none) != 64) return true, .spirv32, .spirv64 => return false, else => return true, }