72e29da3ec
Currently, combining +bundle and +whole-archive works only with #![feature(packed_bundled_libs)] This crate feature is independent of the -Zpacked-bundled-libs command line option. This commit stabilizes the #![feature(packed_bundled_libs)] crate feature and implicitly enables it only when the +bundle and +whole-archive link modifiers are combined. This allows rlib crates to use the +whole-archive link modifier with native libraries and have all symbols included in the linked library to be included in downstream staticlib crates that use the rlib as a dependency. Other cases requiring the packed_bundled_libs behavior still require the -Zpacked-bundled-libs command line option, which can be stabilized independently in the future. Per discussion on https://github.com/rust-lang/rust/issues/108081 there is no risk of regression stabilizing the crate feature in this way because the combination of +bundle,+whole-archive link modifiers was previously not allowed.
15 lines
408 B
Rust
15 lines
408 B
Rust
#[link(name = "native_dep_1", kind = "static", modifiers = "+whole-archive,+bundle")]
|
|
extern "C" {}
|
|
|
|
#[link(name = "native_dep_2", kind = "static", modifiers = "+whole-archive,-bundle")]
|
|
extern "C" {}
|
|
|
|
#[link(name = "native_dep_3", kind = "static", modifiers = "+bundle")]
|
|
extern "C" {}
|
|
|
|
#[link(name = "native_dep_4", kind = "static", modifiers = "-bundle")]
|
|
extern "C" {}
|
|
|
|
#[no_mangle]
|
|
pub fn rust_dep() {}
|