| author | |
| committer | |
| log | 433846100b9ab17aa390e3912dd41c6c7265bccb |
| tree | f121863b59c55113ae179ea7a2089d612984f798 |
| parent | bebfdc3661359bbf681de2676085432698363f16 |
| parent | ece9640a3ed44b0e174f3620fc40511ef86e1903 |
| signature |
Some Solaris/illumos fixes6 files changed, 32 insertions(+), 4 deletions(-)
lib/std/c.zig+19-1| ... | ... | @@ -2528,6 +2528,8 @@ pub const _SC = if (builtin.abi.isAndroid()) enum(c_int) { |
| 2528 | 2528 | .solaris, .illumos => enum(c_int) { |
| 2529 | 2529 | PAGESIZE = 11, |
| 2530 | 2530 | NPROCESSORS_ONLN = 15, |
| 2531 | SIGRT_MIN = 40, | |
| 2532 | SIGRT_MAX = 41, | |
| 2531 | 2533 | }, |
| 2532 | 2534 | // https://github.com/SerenityOS/serenity/blob/1dfc9e2df39dd23f1de92530677c845aae4345f2/Kernel/API/POSIX/unistd.h#L36-L52 |
| 2533 | 2535 | .serenity => enum(c_int) { |
| ... | ... | @@ -5776,6 +5778,20 @@ pub const MSG = switch (native_os) { |
| 5776 | 5778 | pub const FBLOCKING = 0x10000; |
| 5777 | 5779 | pub const FNONBLOCKING = 0x20000; |
| 5778 | 5780 | }, |
| 5781 | .solaris, .illumos => struct { | |
| 5782 | pub const OOB = 0x0001; | |
| 5783 | pub const PEEK = 0x0002; | |
| 5784 | pub const DONTROUTE = 0x0004; | |
| 5785 | pub const EOR = 0x0008; | |
| 5786 | pub const CTRUNC = 0x0010; | |
| 5787 | pub const TRUNC = 0x0020; | |
| 5788 | pub const WAITALL = 0x0040; | |
| 5789 | pub const DONTWAIT = 0x0080; | |
| 5790 | pub const NOTIFICATION = 0x0100; | |
| 5791 | pub const NOSIGNAL = 0x0200; | |
| 5792 | pub const CMSG_CLOEXEC = 0x1000; | |
| 5793 | pub const CMSG_CLOFORK = 0x2000; | |
| 5794 | }, | |
| 5779 | 5795 | else => void, |
| 5780 | 5796 | }; |
| 5781 | 5797 | pub const SOCK = switch (native_os) { |
| ... | ... | @@ -10298,7 +10314,7 @@ pub extern "c" fn setrlimit64(resource: rlimit_resource, rlim: *const rlimit) c_ |
| 10298 | 10314 | |
| 10299 | 10315 | pub const arc4random_buf = switch (native_os) { |
| 10300 | 10316 | .linux => if (builtin.abi.isAndroid()) private.arc4random_buf else {}, |
| 10301 | .dragonfly, .netbsd, .freebsd, .solaris, .openbsd, .serenity, .macos, .ios, .tvos, .watchos, .visionos => private.arc4random_buf, | |
| 10317 | .dragonfly, .netbsd, .freebsd, .solaris, .illumos, .openbsd, .serenity, .macos, .ios, .tvos, .watchos, .visionos => private.arc4random_buf, | |
| 10302 | 10318 | else => {}, |
| 10303 | 10319 | }; |
| 10304 | 10320 | pub const getentropy = switch (native_os) { |
| ... | ... | @@ -10475,6 +10491,7 @@ pub fn sigrtmin() u8 { |
| 10475 | 10491 | return switch (native_os) { |
| 10476 | 10492 | .freebsd => 65, |
| 10477 | 10493 | .netbsd => 33, |
| 10494 | .solaris, .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MIN))), | |
| 10478 | 10495 | else => @truncate(@as(c_uint, @bitCast(private.__libc_current_sigrtmin()))), |
| 10479 | 10496 | }; |
| 10480 | 10497 | } |
| ... | ... | @@ -10484,6 +10501,7 @@ pub fn sigrtmax() u8 { |
| 10484 | 10501 | return switch (native_os) { |
| 10485 | 10502 | .freebsd => 126, |
| 10486 | 10503 | .netbsd => 63, |
| 10504 | .solaris, .illumos => @truncate(sysconf(@intFromEnum(_SC.SIGRT_MAX))), | |
| 10487 | 10505 | else => @truncate(@as(c_uint, @bitCast(private.__libc_current_sigrtmax()))), |
| 10488 | 10506 | }; |
| 10489 | 10507 | } |
lib/std/debug/cpu_context.zig+6| ... | ... | @@ -1963,6 +1963,9 @@ const signal_ucontext_t = switch (native_os) { |
| 1963 | 1963 | _trapno: i64, |
| 1964 | 1964 | _err: i64, |
| 1965 | 1965 | rip: u64, |
| 1966 | _cs: i64, | |
| 1967 | _rflags: i64, | |
| 1968 | rsp: u64, | |
| 1966 | 1969 | }, |
| 1967 | 1970 | }, |
| 1968 | 1971 | else => unreachable, |
| ... | ... | @@ -2012,6 +2015,9 @@ const signal_ucontext_t = switch (native_os) { |
| 2012 | 2015 | _trapno: i64, |
| 2013 | 2016 | _err: i64, |
| 2014 | 2017 | rip: u64, |
| 2018 | _cs: i64, | |
| 2019 | _rflags: i64, | |
| 2020 | rsp: u64, | |
| 2015 | 2021 | }, |
| 2016 | 2022 | else => unreachable, |
| 2017 | 2023 | }, |
src/target.zig+4| ... | ... | @@ -257,6 +257,10 @@ pub fn hasNewLinkerSupport(ofmt: std.Target.ObjectFormat, backend: std.builtin.C |
| 257 | 257 | pub fn selfHostedBackendIsAsRobustAsLlvm(target: *const std.Target) bool { |
| 258 | 258 | if (target.cpu.arch.isSpirV()) return true; |
| 259 | 259 | if (target.cpu.arch == .x86_64 and target.ptrBitWidth() == 64) { |
| 260 | if (target.os.tag.isSolarish()) { | |
| 261 | // https://github.com/ziglang/zig/issues/25699 | |
| 262 | return false; | |
| 263 | } | |
| 260 | 264 | if (target.os.tag.isBSD()) { |
| 261 | 265 | // Self-hosted linker needs work: https://github.com/ziglang/zig/issues/24341 |
| 262 | 266 | return false; |
test/src/ErrorTrace.zig+1-1| ... | ... | @@ -41,7 +41,7 @@ pub fn addCase(self: *ErrorTrace, case: Case) void { |
| 41 | 41 | fn shouldTestNonLlvm(target: *const std.Target) bool { |
| 42 | 42 | return switch (target.cpu.arch) { |
| 43 | 43 | .x86_64 => switch (target.ofmt) { |
| 44 | .elf => !target.os.tag.isBSD(), | |
| 44 | .elf => !target.os.tag.isBSD() and !target.os.tag.isSolarish(), | |
| 45 | 45 | else => false, |
| 46 | 46 | }, |
| 47 | 47 | else => false, |
test/src/StackTrace.zig+1-1| ... | ... | @@ -46,7 +46,7 @@ fn addCaseTarget( |
| 46 | 46 | ) void { |
| 47 | 47 | const both_backends = switch (target.result.cpu.arch) { |
| 48 | 48 | .x86_64 => switch (target.result.ofmt) { |
| 49 | .elf => !target.result.os.tag.isBSD(), | |
| 49 | .elf => !target.result.os.tag.isBSD() and !target.result.os.tag.isSolarish(), | |
| 50 | 50 | else => false, |
| 51 | 51 | }, |
| 52 | 52 | else => false, |
test/tests.zig+1-1| ... | ... | @@ -2493,7 +2493,7 @@ pub fn wouldUseLlvm(use_llvm: ?bool, query: std.Target.Query, optimize_mode: Opt |
| 2493 | 2493 | const cpu_arch = query.cpu_arch orelse builtin.cpu.arch; |
| 2494 | 2494 | const os_tag = query.os_tag orelse builtin.os.tag; |
| 2495 | 2495 | switch (cpu_arch) { |
| 2496 | .x86_64 => if (os_tag.isBSD() or std.Target.ptrBitWidth_arch_abi(cpu_arch, query.abi orelse .none) != 64) return true, | |
| 2496 | .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, | |
| 2497 | 2497 | .spirv32, .spirv64 => return false, |
| 2498 | 2498 | else => return true, |
| 2499 | 2499 | } |