Add windows-targets crate to std's sysroot

This commit is contained in:
Chris Denton 2024-08-09 01:32:13 +00:00
parent c7b0d4e81f
commit acb024110f
No known key found for this signature in database
GPG Key ID: 713472F2F45627DE
9 changed files with 26 additions and 7 deletions

View File

@ -339,6 +339,7 @@ dependencies = [
"std_detect", "std_detect",
"unwind", "unwind",
"wasi", "wasi",
"windows-targets 0.0.0",
] ]
[[package]] [[package]]
@ -421,9 +422,13 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [ dependencies = [
"windows-targets", "windows-targets 0.52.5",
] ]
[[package]]
name = "windows-targets"
version = "0.0.0"
[[package]] [[package]]
name = "windows-targets" name = "windows-targets"
version = "0.52.5" version = "0.52.5"

View File

@ -57,6 +57,9 @@ object = { version = "0.36.0", default-features = false, optional = true, featur
'archive', 'archive',
] } ] }
[target.'cfg(windows)'.dependencies.windows-targets]
path = "../windows_targets"
[dev-dependencies] [dev-dependencies]
rand = { version = "0.8.5", default-features = false, features = ["alloc"] } rand = { version = "0.8.5", default-features = false, features = ["alloc"] }
rand_xorshift = "0.3.0" rand_xorshift = "0.3.0"
@ -116,7 +119,7 @@ std_detect_env_override = ["std_detect/std_detect_env_override"]
# Enable using raw-dylib for Windows imports. # Enable using raw-dylib for Windows imports.
# This will eventually be the default. # This will eventually be the default.
windows_raw_dylib = [] windows_raw_dylib = ["windows-targets/windows_raw_dylib"]
[package.metadata.fortanix-sgx] [package.metadata.fortanix-sgx]
# Maximum possible number of threads when testing # Maximum possible number of threads when testing

View File

@ -4,7 +4,7 @@ use crate::alloc::{GlobalAlloc, Layout, System};
use crate::ffi::c_void; use crate::ffi::c_void;
use crate::ptr; use crate::ptr;
use crate::sync::atomic::{AtomicPtr, Ordering}; use crate::sync::atomic::{AtomicPtr, Ordering};
use crate::sys::c::{self, windows_targets}; use crate::sys::c;
use crate::sys::common::alloc::{realloc_fallback, MIN_ALIGN}; use crate::sys::common::alloc::{realloc_fallback, MIN_ALIGN};
#[cfg(test)] #[cfg(test)]

View File

@ -8,8 +8,6 @@
use core::ffi::{c_uint, c_ulong, c_ushort, c_void, CStr}; use core::ffi::{c_uint, c_ulong, c_ushort, c_void, CStr};
use core::{mem, ptr}; use core::{mem, ptr};
pub(super) mod windows_targets;
mod windows_sys; mod windows_sys;
pub use windows_sys::*; pub use windows_sys::*;

View File

@ -3317,4 +3317,3 @@ pub struct WSADATA {
#[cfg(target_arch = "arm")] #[cfg(target_arch = "arm")]
pub enum CONTEXT {} pub enum CONTEXT {}
// ignore-tidy-filelength // ignore-tidy-filelength
use super::windows_targets;

View File

@ -0,0 +1,10 @@
[package]
name = "windows-targets"
description = "A drop-in replacement for the real windows-targets crate for use in std only."
version = "0.0.0"
edition = "2021"
[features]
# Enable using raw-dylib for Windows imports.
# This will eventually be the default.
windows_raw_dylib = []

View File

@ -2,6 +2,10 @@
//! //!
//! This is a simple wrapper around an `extern` block with a `#[link]` attribute. //! This is a simple wrapper around an `extern` block with a `#[link]` attribute.
//! It's very roughly equivalent to the windows-targets crate. //! It's very roughly equivalent to the windows-targets crate.
#![no_std]
#![no_core]
#![feature(decl_macro)]
#![feature(no_core)]
#[cfg(feature = "windows_raw_dylib")] #[cfg(feature = "windows_raw_dylib")]
pub macro link { pub macro link {

View File

@ -35,7 +35,6 @@ fn main() -> Result<(), Box<dyn Error>> {
let mut f = std::fs::File::options().append(true).open("windows_sys.rs")?; let mut f = std::fs::File::options().append(true).open("windows_sys.rs")?;
f.write_all(ARM32_SHIM.as_bytes())?; f.write_all(ARM32_SHIM.as_bytes())?;
writeln!(&mut f, "// ignore-tidy-filelength")?; writeln!(&mut f, "// ignore-tidy-filelength")?;
writeln!(&mut f, "use super::windows_targets;")?;
Ok(()) Ok(())
} }

View File

@ -36,6 +36,7 @@ use crate::walk::{filter_dirs, walk};
// Paths that may contain platform-specific code. // Paths that may contain platform-specific code.
const EXCEPTION_PATHS: &[&str] = &[ const EXCEPTION_PATHS: &[&str] = &[
"library/windows_targets",
"library/panic_abort", "library/panic_abort",
"library/panic_unwind", "library/panic_unwind",
"library/unwind", "library/unwind",