diff --git a/src/backend/libc/conv.rs b/src/backend/libc/conv.rs index 5052b010f..f4b440b7a 100644 --- a/src/backend/libc/conv.rs +++ b/src/backend/libc/conv.rs @@ -70,7 +70,11 @@ pub(super) fn ret_c_int(raw: c::c_int) -> io::Result { } } -#[cfg(any(linux_kernel, all(target_os = "redox", feature = "event")))] +#[cfg(any( + linux_kernel, + all(solarish, feature = "event"), + all(target_os = "redox", feature = "event") +))] #[inline] pub(super) fn ret_u32(raw: c::c_int) -> io::Result { if raw == -1 { diff --git a/src/backend/libc/event/mod.rs b/src/backend/libc/event/mod.rs index a07d06b1a..23797dd78 100644 --- a/src/backend/libc/event/mod.rs +++ b/src/backend/libc/event/mod.rs @@ -5,5 +5,5 @@ pub(crate) mod types; #[cfg_attr(windows, path = "windows_syscalls.rs")] pub(crate) mod syscalls; -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub mod epoll; diff --git a/src/backend/libc/event/poll_fd.rs b/src/backend/libc/event/poll_fd.rs index ba1bab0b5..1b0d4ae1f 100644 --- a/src/backend/libc/event/poll_fd.rs +++ b/src/backend/libc/event/poll_fd.rs @@ -40,10 +40,14 @@ bitflags! { #[cfg(not(target_os = "espidf"))] const NVAL = c::POLLNVAL; /// `POLLRDHUP` - #[cfg(all( - linux_kernel, - not(any(target_arch = "sparc", target_arch = "sparc64"))), - )] + #[cfg(any( + target_os = "freebsd", + target_os = "illumos", + all( + linux_kernel, + not(any(target_arch = "sparc", target_arch = "sparc64")) + ), + ))] const RDHUP = c::POLLRDHUP; /// diff --git a/src/backend/libc/event/syscalls.rs b/src/backend/libc/event/syscalls.rs index 763f2e2c0..2f55dfb81 100644 --- a/src/backend/libc/event/syscalls.rs +++ b/src/backend/libc/event/syscalls.rs @@ -5,7 +5,7 @@ use crate::backend::c; use crate::backend::conv::ret; use crate::backend::conv::ret_c_int; #[cfg(feature = "alloc")] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] use crate::backend::conv::ret_u32; #[cfg(solarish)] use crate::event::port::Event; @@ -22,7 +22,7 @@ use crate::event::PollFd; use crate::io; #[cfg(solarish)] use crate::utils::as_mut_ptr; -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] use crate::utils::as_ptr; #[cfg(any( all(feature = "alloc", bsd), @@ -351,13 +351,13 @@ pub(crate) fn pause() { } #[inline] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub(crate) fn epoll_create(flags: super::epoll::CreateFlags) -> io::Result { unsafe { ret_owned_fd(c::epoll_create1(bitflags_bits!(flags))) } } #[inline] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub(crate) fn epoll_add( epoll: BorrowedFd<'_>, source: BorrowedFd<'_>, @@ -378,7 +378,7 @@ pub(crate) fn epoll_add( } #[inline] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub(crate) fn epoll_mod( epoll: BorrowedFd<'_>, source: BorrowedFd<'_>, @@ -396,7 +396,7 @@ pub(crate) fn epoll_mod( } #[inline] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub(crate) fn epoll_del(epoll: BorrowedFd<'_>, source: BorrowedFd<'_>) -> io::Result<()> { unsafe { ret(c::epoll_ctl( @@ -410,7 +410,7 @@ pub(crate) fn epoll_del(epoll: BorrowedFd<'_>, source: BorrowedFd<'_>) -> io::Re #[inline] #[cfg(feature = "alloc")] -#[cfg(any(linux_kernel, target_os = "redox"))] +#[cfg(any(linux_kernel, solarish, target_os = "redox"))] pub(crate) fn epoll_wait( epoll: BorrowedFd<'_>, events: &mut [MaybeUninit], diff --git a/src/backend/libc/fs/types.rs b/src/backend/libc/fs/types.rs index 98b767cd4..c8bb01f46 100644 --- a/src/backend/libc/fs/types.rs +++ b/src/backend/libc/fs/types.rs @@ -40,7 +40,7 @@ bitflags! { const SYMLINK_NOFOLLOW = bitcast!(c::AT_SYMLINK_NOFOLLOW); /// `AT_EACCESS` - #[cfg(not(any(target_os = "emscripten", target_os = "android")))] + #[cfg(not(target_os = "android"))] const EACCESS = bitcast!(c::AT_EACCESS); /// `AT_REMOVEDIR` diff --git a/src/backend/libc/pty/syscalls.rs b/src/backend/libc/pty/syscalls.rs index 2395efde4..4e8af7509 100644 --- a/src/backend/libc/pty/syscalls.rs +++ b/src/backend/libc/pty/syscalls.rs @@ -6,7 +6,13 @@ use crate::fd::BorrowedFd; use crate::io; #[cfg(all( feature = "alloc", - any(apple, linux_like, target_os = "freebsd", target_os = "fuchsia") + any( + apple, + linux_like, + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos" + ) ))] use { crate::ffi::{CStr, CString}, @@ -26,7 +32,13 @@ pub(crate) fn openpt(flags: OpenptFlags) -> io::Result { #[cfg(all( feature = "alloc", - any(apple, linux_like, target_os = "freebsd", target_os = "fuchsia") + any( + apple, + linux_like, + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos" + ) ))] #[inline] pub(crate) fn ptsname(fd: BorrowedFd<'_>, mut buffer: Vec) -> io::Result { @@ -38,7 +50,7 @@ pub(crate) fn ptsname(fd: BorrowedFd<'_>, mut buffer: Vec) -> io::Result io::Result { /// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Allocation.html#index-ptsname #[cfg(all( feature = "alloc", - any(apple, linux_like, target_os = "freebsd", target_os = "fuchsia") + any( + apple, + linux_like, + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos" + ) ))] #[inline] #[doc(alias = "ptsname_r")]