diff options
| author | bors <bors@rust-lang.org> | 2025-08-28 13:41:38 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-08-28 13:41:38 +0000 |
| commit | 1f7dcc878d73c45cc40018aac6e5c767446df110 (patch) | |
| tree | 1aea0e97a7daea5e9b5377eccdb8601a47446ac4 /compiler/rustc_session/src/utils.rs | |
| parent | b41634205b549a62cfa55363d1e00c4143d30033 (diff) | |
| parent | 556d2fa94b7d6da252bdf34b683970e1cd016b14 (diff) | |
| download | rust-1f7dcc878d73c45cc40018aac6e5c767446df110.tar.gz rust-1f7dcc878d73c45cc40018aac6e5c767446df110.zip | |
Auto merge of #145958 - Zalathar:rollup-ii9z77c, r=Zalathar
Rollup of 9 pull requests Successful merges: - rust-lang/rust#142727 (wasm: rm static mut) - rust-lang/rust#143193 (Port `#[link]` to the new attribute parsing infrastructure ) - rust-lang/rust#144864 (No source fixes) - rust-lang/rust#145913 (Add spin_loop hint for LoongArch) - rust-lang/rust#145926 (compiletest: Remove several remnants of the old libtest-based executor) - rust-lang/rust#145928 (Rename `Location::file_with_nul` to `file_as_c_str`) - rust-lang/rust#145930 (`const`ify (the unstable) `str::as_str`) - rust-lang/rust#145941 (Disable `integer_to_ptr_transmutes` suggestion for unsized types) - rust-lang/rust#145953 (Update `icu_list` to 2.0) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_session/src/utils.rs')
| -rw-r--r-- | compiler/rustc_session/src/utils.rs | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/compiler/rustc_session/src/utils.rs b/compiler/rustc_session/src/utils.rs index e9ddd66b5e8..c64d9bc1efe 100644 --- a/compiler/rustc_session/src/utils.rs +++ b/compiler/rustc_session/src/utils.rs @@ -3,6 +3,7 @@ use std::sync::OnceLock; use rustc_data_structures::profiling::VerboseTimingGuard; use rustc_fs_util::try_canonicalize; +use rustc_hir::attrs::NativeLibKind; use rustc_macros::{Decodable, Encodable, HashStable_Generic}; use crate::session::Session; @@ -17,69 +18,6 @@ impl Session { } } -#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Encodable, Decodable)] -#[derive(HashStable_Generic)] -pub enum NativeLibKind { - /// Static library (e.g. `libfoo.a` on Linux or `foo.lib` on Windows/MSVC) - Static { - /// Whether to bundle objects from static library into produced rlib - bundle: Option<bool>, - /// Whether to link static library without throwing any object files away - whole_archive: Option<bool>, - }, - /// Dynamic library (e.g. `libfoo.so` on Linux) - /// or an import library corresponding to a dynamic library (e.g. `foo.lib` on Windows/MSVC). - Dylib { - /// Whether the dynamic library will be linked only if it satisfies some undefined symbols - as_needed: Option<bool>, - }, - /// Dynamic library (e.g. `foo.dll` on Windows) without a corresponding import library. - /// On Linux, it refers to a generated shared library stub. - RawDylib, - /// A macOS-specific kind of dynamic libraries. - Framework { - /// Whether the framework will be linked only if it satisfies some undefined symbols - as_needed: Option<bool>, - }, - /// Argument which is passed to linker, relative order with libraries and other arguments - /// is preserved - LinkArg, - - /// Module imported from WebAssembly - WasmImportModule, - - /// The library kind wasn't specified, `Dylib` is currently used as a default. - Unspecified, -} - -impl NativeLibKind { - pub fn has_modifiers(&self) -> bool { - match self { - NativeLibKind::Static { bundle, whole_archive } => { - bundle.is_some() || whole_archive.is_some() - } - NativeLibKind::Dylib { as_needed } | NativeLibKind::Framework { as_needed } => { - as_needed.is_some() - } - NativeLibKind::RawDylib - | NativeLibKind::Unspecified - | NativeLibKind::LinkArg - | NativeLibKind::WasmImportModule => false, - } - } - - pub fn is_statically_included(&self) -> bool { - matches!(self, NativeLibKind::Static { .. }) - } - - pub fn is_dllimport(&self) -> bool { - matches!( - self, - NativeLibKind::Dylib { .. } | NativeLibKind::RawDylib | NativeLibKind::Unspecified - ) - } -} - #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Encodable, Decodable)] #[derive(HashStable_Generic)] pub struct NativeLib { |
