Rollup merge of #137621 - Berrysoft:cygwin-std, r=joboet
Add std support to cygwin target
This commit is contained in:
commit
b3b7a3b8d2
28 changed files with 197 additions and 19 deletions
|
@ -18,7 +18,7 @@ pub(crate) fn target() -> Target {
|
|||
description: Some("64-bit x86 Cygwin".into()),
|
||||
tier: Some(3),
|
||||
host_tools: Some(false),
|
||||
std: None,
|
||||
std: Some(true),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ fn main() {
|
|||
|| target_os == "zkvm"
|
||||
|| target_os == "rtems"
|
||||
|| target_os == "nuttx"
|
||||
|| target_os == "cygwin"
|
||||
|
||||
// See src/bootstrap/src/core/build_steps/synthetic_targets.rs
|
||||
|| env::var("RUSTC_BOOTSTRAP_SYNTHETIC_TARGET").is_ok()
|
||||
|
|
102
library/std/src/os/cygwin/fs.rs
Normal file
102
library/std/src/os/cygwin/fs.rs
Normal file
|
@ -0,0 +1,102 @@
|
|||
#![stable(feature = "metadata_ext", since = "1.1.0")]
|
||||
use crate::fs::Metadata;
|
||||
use crate::sys_common::AsInner;
|
||||
/// OS-specific extensions to [`fs::Metadata`].
|
||||
///
|
||||
/// [`fs::Metadata`]: crate::fs::Metadata
|
||||
#[stable(feature = "metadata_ext", since = "1.1.0")]
|
||||
pub trait MetadataExt {
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_dev(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_ino(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_mode(&self) -> u32;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_nlink(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_uid(&self) -> u32;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_gid(&self) -> u32;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_rdev(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_size(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_atime(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_atime_nsec(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_mtime(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_mtime_nsec(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_ctime(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_ctime_nsec(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_blksize(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_blocks(&self) -> u64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_birthtime(&self) -> i64;
|
||||
#[stable(feature = "metadata_ext2", since = "1.8.0")]
|
||||
fn st_birthtime_nsec(&self) -> i64;
|
||||
}
|
||||
#[stable(feature = "metadata_ext", since = "1.1.0")]
|
||||
impl MetadataExt for Metadata {
|
||||
fn st_dev(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_dev as u64
|
||||
}
|
||||
fn st_ino(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_ino as u64
|
||||
}
|
||||
fn st_mode(&self) -> u32 {
|
||||
self.as_inner().as_inner().st_mode as u32
|
||||
}
|
||||
fn st_nlink(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_nlink as u64
|
||||
}
|
||||
fn st_uid(&self) -> u32 {
|
||||
self.as_inner().as_inner().st_uid as u32
|
||||
}
|
||||
fn st_gid(&self) -> u32 {
|
||||
self.as_inner().as_inner().st_gid as u32
|
||||
}
|
||||
fn st_rdev(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_rdev as u64
|
||||
}
|
||||
fn st_size(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_size as u64
|
||||
}
|
||||
fn st_atime(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_atime as i64
|
||||
}
|
||||
fn st_atime_nsec(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_atime_nsec as i64
|
||||
}
|
||||
fn st_mtime(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_mtime as i64
|
||||
}
|
||||
fn st_mtime_nsec(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_mtime_nsec as i64
|
||||
}
|
||||
fn st_ctime(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_ctime as i64
|
||||
}
|
||||
fn st_ctime_nsec(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_ctime_nsec as i64
|
||||
}
|
||||
fn st_blksize(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_blksize as u64
|
||||
}
|
||||
fn st_blocks(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_blocks as u64
|
||||
}
|
||||
fn st_birthtime(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_birthtime as i64
|
||||
}
|
||||
fn st_birthtime_nsec(&self) -> i64 {
|
||||
self.as_inner().as_inner().st_birthtime_nsec as i64
|
||||
}
|
||||
}
|
4
library/std/src/os/cygwin/mod.rs
Normal file
4
library/std/src/os/cygwin/mod.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
//! Cygwin-specific definitions
|
||||
#![stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub mod fs;
|
||||
pub(crate) mod raw;
|
4
library/std/src/os/cygwin/raw.rs
Normal file
4
library/std/src/os/cygwin/raw.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
//! Cygwin-specific raw type definitions.
|
||||
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub use libc::{blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, off_t, pthread_t, time_t};
|
|
@ -125,6 +125,8 @@ pub mod windows;
|
|||
pub mod aix;
|
||||
#[cfg(target_os = "android")]
|
||||
pub mod android;
|
||||
#[cfg(target_os = "cygwin")]
|
||||
pub mod cygwin;
|
||||
#[cfg(target_os = "dragonfly")]
|
||||
pub mod dragonfly;
|
||||
#[cfg(target_os = "emscripten")]
|
||||
|
|
|
@ -41,6 +41,8 @@ mod platform {
|
|||
pub use crate::os::aix::*;
|
||||
#[cfg(target_os = "android")]
|
||||
pub use crate::os::android::*;
|
||||
#[cfg(target_os = "cygwin")]
|
||||
pub use crate::os::cygwin::*;
|
||||
#[cfg(target_vendor = "apple")]
|
||||
pub use crate::os::darwin::*;
|
||||
#[cfg(target_os = "dragonfly")]
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
target_os = "illumos",
|
||||
target_os = "haiku",
|
||||
target_os = "nto",
|
||||
target_os = "cygwin"
|
||||
))]
|
||||
use libc::MSG_NOSIGNAL;
|
||||
|
||||
|
@ -37,6 +38,7 @@ use crate::{fmt, io};
|
|||
target_os = "illumos",
|
||||
target_os = "haiku",
|
||||
target_os = "nto",
|
||||
target_os = "cygwin"
|
||||
)))]
|
||||
const MSG_NOSIGNAL: core::ffi::c_int = 0x0;
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ mod tests;
|
|||
target_os = "openbsd",
|
||||
target_os = "nto",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin"
|
||||
))]
|
||||
mod ucred;
|
||||
|
||||
|
@ -44,6 +45,7 @@ pub use self::stream::*;
|
|||
target_os = "openbsd",
|
||||
target_os = "nto",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
))]
|
||||
#[unstable(feature = "peer_credentials_unix_socket", issue = "42839", reason = "unstable")]
|
||||
pub use self::ucred::*;
|
||||
|
|
|
@ -10,6 +10,7 @@ use super::{SocketAncillary, recv_vectored_with_ancillary_from, send_vectored_wi
|
|||
target_os = "openbsd",
|
||||
target_os = "nto",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin"
|
||||
))]
|
||||
use super::{UCred, peer_cred};
|
||||
use crate::fmt;
|
||||
|
@ -231,6 +232,7 @@ impl UnixStream {
|
|||
target_os = "openbsd",
|
||||
target_os = "nto",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin"
|
||||
))]
|
||||
pub fn peer_cred(&self) -> io::Result<UCred> {
|
||||
peer_cred(self)
|
||||
|
|
|
@ -33,10 +33,10 @@ pub(super) use self::impl_apple::peer_cred;
|
|||
target_os = "nto"
|
||||
))]
|
||||
pub(super) use self::impl_bsd::peer_cred;
|
||||
#[cfg(any(target_os = "android", target_os = "linux"))]
|
||||
#[cfg(any(target_os = "android", target_os = "linux", target_os = "cygwin"))]
|
||||
pub(super) use self::impl_linux::peer_cred;
|
||||
|
||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
#[cfg(any(target_os = "linux", target_os = "android", target_os = "cygwin"))]
|
||||
mod impl_linux {
|
||||
use libc::{SO_PEERCRED, SOL_SOCKET, c_void, getsockopt, socklen_t, ucred};
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ use crate::sys::random as sys;
|
|||
/// Solaris | [`arc4random_buf`](https://docs.oracle.com/cd/E88353_01/html/E37843/arc4random-3c.html)
|
||||
/// Vita | `arc4random_buf`
|
||||
/// Hermit | `read_entropy`
|
||||
/// Horizon | `getrandom` shim
|
||||
/// Horizon, Cygwin | `getrandom`
|
||||
/// AIX, Hurd, L4Re, QNX | `/dev/urandom`
|
||||
/// Redox | `/scheme/rand`
|
||||
/// RTEMS | [`arc4random_buf`](https://docs.rtems.org/branches/master/bsp-howto/getentropy.html)
|
||||
|
|
|
@ -543,7 +543,12 @@ impl FileAttr {
|
|||
SystemTime::new(self.stat.st_atim.tv_sec as i64, self.stat.st_atim.tv_nsec as i64)
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "freebsd", target_os = "openbsd", target_vendor = "apple"))]
|
||||
#[cfg(any(
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
))]
|
||||
pub fn created(&self) -> io::Result<SystemTime> {
|
||||
SystemTime::new(self.stat.st_birthtime as i64, self.stat.st_birthtime_nsec as i64)
|
||||
}
|
||||
|
@ -553,6 +558,7 @@ impl FileAttr {
|
|||
target_os = "openbsd",
|
||||
target_os = "vita",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
)))]
|
||||
pub fn created(&self) -> io::Result<SystemTime> {
|
||||
cfg_has_statx! {
|
||||
|
@ -960,6 +966,7 @@ impl DirEntry {
|
|||
|
||||
#[cfg(any(
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "emscripten",
|
||||
target_os = "android",
|
||||
target_os = "solaris",
|
||||
|
@ -1220,6 +1227,7 @@ impl File {
|
|||
target_os = "freebsd",
|
||||
target_os = "fuchsia",
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
|
@ -1234,6 +1242,7 @@ impl File {
|
|||
target_os = "fuchsia",
|
||||
target_os = "freebsd",
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "nto",
|
||||
|
|
|
@ -59,7 +59,8 @@ cfg_if::cfg_if! {
|
|||
target_os = "dragonfly", target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "netbsd",
|
||||
target_os = "solaris", target_os = "illumos",
|
||||
target_os = "haiku", target_os = "nto"))] {
|
||||
target_os = "haiku", target_os = "nto",
|
||||
target_os = "cygwin"))] {
|
||||
use libc::MSG_NOSIGNAL;
|
||||
} else {
|
||||
const MSG_NOSIGNAL: c_int = 0x0;
|
||||
|
|
|
@ -81,6 +81,7 @@ impl Socket {
|
|||
target_os = "linux",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
target_os = "nto",
|
||||
target_os = "solaris",
|
||||
))] {
|
||||
|
@ -128,6 +129,7 @@ impl Socket {
|
|||
target_os = "hurd",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
target_os = "nto",
|
||||
))] {
|
||||
// Like above, set cloexec atomically
|
||||
|
@ -257,6 +259,7 @@ impl Socket {
|
|||
target_os = "hurd",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
))] {
|
||||
unsafe {
|
||||
let fd = cvt_r(|| libc::accept4(self.as_raw_fd(), storage, len, libc::SOCK_CLOEXEC))?;
|
||||
|
@ -421,6 +424,7 @@ impl Socket {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "cygwin"))]
|
||||
pub fn set_linger(&self, linger: Option<Duration>) -> io::Result<()> {
|
||||
let linger = libc::linger {
|
||||
l_onoff: linger.is_some() as libc::c_int,
|
||||
|
@ -430,6 +434,16 @@ impl Socket {
|
|||
setsockopt(self, libc::SOL_SOCKET, SO_LINGER, linger)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "cygwin")]
|
||||
pub fn set_linger(&self, linger: Option<Duration>) -> io::Result<()> {
|
||||
let linger = libc::linger {
|
||||
l_onoff: linger.is_some() as libc::c_ushort,
|
||||
l_linger: linger.unwrap_or_default().as_secs() as libc::c_ushort,
|
||||
};
|
||||
|
||||
setsockopt(self, libc::SOL_SOCKET, SO_LINGER, linger)
|
||||
}
|
||||
|
||||
pub fn linger(&self) -> io::Result<Option<Duration>> {
|
||||
let val: libc::linger = getsockopt(self, libc::SOL_SOCKET, SO_LINGER)?;
|
||||
|
||||
|
|
|
@ -100,6 +100,7 @@ impl DoubleEndedIterator for Args {
|
|||
target_os = "dragonfly",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
target_os = "solaris",
|
||||
target_os = "illumos",
|
||||
target_os = "emscripten",
|
||||
|
|
|
@ -108,6 +108,17 @@ pub mod os {
|
|||
pub const EXE_EXTENSION: &str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "cygwin")]
|
||||
pub mod os {
|
||||
pub const FAMILY: &str = "unix";
|
||||
pub const OS: &str = "cygwin";
|
||||
pub const DLL_PREFIX: &str = "";
|
||||
pub const DLL_SUFFIX: &str = ".dll";
|
||||
pub const DLL_EXTENSION: &str = "dll";
|
||||
pub const EXE_SUFFIX: &str = ".exe";
|
||||
pub const EXE_EXTENSION: &str = "exe";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub mod os {
|
||||
pub const FAMILY: &str = "unix";
|
||||
|
|
|
@ -47,6 +47,7 @@ const READ_LIMIT: usize = if cfg!(target_vendor = "apple") {
|
|||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
))]
|
||||
const fn max_iov() -> usize {
|
||||
libc::IOV_MAX as usize
|
||||
|
@ -74,6 +75,7 @@ const fn max_iov() -> usize {
|
|||
target_os = "horizon",
|
||||
target_os = "vita",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
)))]
|
||||
const fn max_iov() -> usize {
|
||||
16 // The minimum value required by POSIX.
|
||||
|
@ -503,6 +505,7 @@ impl FileDesc {
|
|||
target_os = "fuchsia",
|
||||
target_os = "l4re",
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "haiku",
|
||||
target_os = "redox",
|
||||
target_os = "vxworks",
|
||||
|
@ -525,6 +528,7 @@ impl FileDesc {
|
|||
target_os = "fuchsia",
|
||||
target_os = "l4re",
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "haiku",
|
||||
target_os = "redox",
|
||||
target_os = "vxworks",
|
||||
|
|
|
@ -380,7 +380,7 @@ cfg_if::cfg_if! {
|
|||
#[link(name = "pthread")]
|
||||
#[link(name = "rt")]
|
||||
unsafe extern "C" {}
|
||||
} else if #[cfg(any(target_os = "dragonfly", target_os = "openbsd"))] {
|
||||
} else if #[cfg(any(target_os = "dragonfly", target_os = "openbsd", target_os = "cygwin"))] {
|
||||
#[link(name = "pthread")]
|
||||
unsafe extern "C" {}
|
||||
} else if #[cfg(target_os = "solaris")] {
|
||||
|
|
|
@ -46,6 +46,7 @@ unsafe extern "C" {
|
|||
any(
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
target_os = "android",
|
||||
target_os = "redox",
|
||||
target_os = "nuttx",
|
||||
|
@ -118,7 +119,12 @@ pub fn error_string(errno: i32) -> String {
|
|||
unsafe extern "C" {
|
||||
#[cfg_attr(
|
||||
all(
|
||||
any(target_os = "linux", target_os = "hurd", target_env = "newlib"),
|
||||
any(
|
||||
target_os = "linux",
|
||||
target_os = "hurd",
|
||||
target_env = "newlib",
|
||||
target_os = "cygwin"
|
||||
),
|
||||
not(target_env = "ohos")
|
||||
),
|
||||
link_name = "__xpg_strerror_r"
|
||||
|
@ -395,6 +401,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
|
|||
|
||||
#[cfg(any(
|
||||
target_os = "linux",
|
||||
target_os = "cygwin",
|
||||
target_os = "hurd",
|
||||
target_os = "android",
|
||||
target_os = "nuttx",
|
||||
|
|
|
@ -27,6 +27,7 @@ pub fn anon_pipe() -> io::Result<(AnonPipe, AnonPipe)> {
|
|||
target_os = "linux",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "cygwin",
|
||||
target_os = "redox"
|
||||
))] {
|
||||
unsafe {
|
||||
|
|
|
@ -1157,7 +1157,7 @@ fn signal_string(signal: i32) -> &'static str {
|
|||
)
|
||||
))]
|
||||
libc::SIGSTKFLT => " (SIGSTKFLT)",
|
||||
#[cfg(any(target_os = "linux", target_os = "nto"))]
|
||||
#[cfg(any(target_os = "linux", target_os = "nto", target_os = "cygwin"))]
|
||||
libc::SIGPWR => " (SIGPWR)",
|
||||
#[cfg(any(
|
||||
target_os = "freebsd",
|
||||
|
@ -1166,6 +1166,7 @@ fn signal_string(signal: i32) -> &'static str {
|
|||
target_os = "dragonfly",
|
||||
target_os = "nto",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
))]
|
||||
libc::SIGEMT => " (SIGEMT)",
|
||||
#[cfg(any(
|
||||
|
|
|
@ -137,7 +137,8 @@ impl Thread {
|
|||
target_os = "linux",
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "nuttx"
|
||||
target_os = "nuttx",
|
||||
target_os = "cygwin"
|
||||
))]
|
||||
pub fn set_name(name: &CStr) {
|
||||
unsafe {
|
||||
|
@ -365,6 +366,7 @@ pub fn available_parallelism() -> io::Result<NonZero<usize>> {
|
|||
target_os = "linux",
|
||||
target_os = "aix",
|
||||
target_vendor = "apple",
|
||||
target_os = "cygwin",
|
||||
))] {
|
||||
#[allow(unused_assignments)]
|
||||
#[allow(unused_mut)]
|
||||
|
|
|
@ -248,7 +248,10 @@ cfg_if::cfg_if! {
|
|||
}
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(all(windows, any(target_arch = "aarch64", target_arch = "x86_64"), target_env = "gnu"))] {
|
||||
if #[cfg(any(
|
||||
all(windows, any(target_arch = "aarch64", target_arch = "x86_64"), target_env = "gnu"),
|
||||
target_os = "cygwin",
|
||||
))] {
|
||||
/// personality fn called by [Windows Structured Exception Handling][windows-eh]
|
||||
///
|
||||
/// On x86_64 and AArch64 MinGW targets, the unwinding mechanism is SEH,
|
||||
|
|
|
@ -35,10 +35,10 @@ cfg_if::cfg_if! {
|
|||
} else if #[cfg(target_os = "hermit")] {
|
||||
mod hermit;
|
||||
pub use hermit::fill_bytes;
|
||||
} else if #[cfg(target_os = "horizon")] {
|
||||
// FIXME: add arc4random_buf to shim-3ds
|
||||
mod horizon;
|
||||
pub use horizon::fill_bytes;
|
||||
} else if #[cfg(any(target_os = "horizon", target_os = "cygwin"))] {
|
||||
// FIXME(horizon): add arc4random_buf to shim-3ds
|
||||
mod getrandom;
|
||||
pub use getrandom::fill_bytes;
|
||||
} else if #[cfg(any(
|
||||
target_os = "aix",
|
||||
target_os = "hurd",
|
||||
|
|
|
@ -27,10 +27,10 @@ pub type _Unwind_Trace_Fn =
|
|||
#[cfg(target_arch = "x86")]
|
||||
pub const unwinder_private_data_size: usize = 5;
|
||||
|
||||
#[cfg(all(target_arch = "x86_64", not(target_os = "windows")))]
|
||||
#[cfg(all(target_arch = "x86_64", not(any(target_os = "windows", target_os = "cygwin"))))]
|
||||
pub const unwinder_private_data_size: usize = 2;
|
||||
|
||||
#[cfg(all(target_arch = "x86_64", target_os = "windows"))]
|
||||
#[cfg(all(target_arch = "x86_64", any(target_os = "windows", target_os = "cygwin")))]
|
||||
pub const unwinder_private_data_size: usize = 6;
|
||||
|
||||
#[cfg(all(target_arch = "arm", not(target_vendor = "apple")))]
|
||||
|
@ -289,7 +289,10 @@ if #[cfg(all(target_vendor = "apple", not(target_os = "watchos"), target_arch =
|
|||
} // cfg_if!
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(all(windows, any(target_arch = "aarch64", target_arch = "x86_64"), target_env = "gnu"))] {
|
||||
if #[cfg(any(
|
||||
all(windows, any(target_arch = "aarch64", target_arch = "x86_64"), target_env = "gnu"),
|
||||
target_os = "cygwin",
|
||||
))] {
|
||||
// We declare these as opaque types. This is fine since you just need to
|
||||
// pass them to _GCC_specific_handler and forget about them.
|
||||
pub enum EXCEPTION_RECORD {}
|
||||
|
|
|
@ -407,7 +407,7 @@ target | std | host | notes
|
|||
[`wasm32-wali-linux-musl`](platform-support/wasm32-wali-linux.md) | ? | | WebAssembly with [WALI](https://github.com/arjunr2/WALI)
|
||||
[`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ✓ | | x86 64-bit tvOS
|
||||
[`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator
|
||||
[`x86_64-pc-cygwin`](platform-support/x86_64-pc-cygwin.md) | ? | | 64-bit x86 Cygwin |
|
||||
[`x86_64-pc-cygwin`](platform-support/x86_64-pc-cygwin.md) | ✓ | | 64-bit x86 Cygwin |
|
||||
[`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS with default network stack (io-pkt) |
|
||||
[`x86_64-pc-nto-qnx710_iosock`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS with new network stack (io-sock) |
|
||||
[`x86_64-pc-nto-qnx800`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 8.0 RTOS |
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue