mirror of https://github.com/rust-lang/rust.git
27 lines
1.1 KiB
Rust
27 lines
1.1 KiB
Rust
// Ensure that rust does not pass native libraries to the linker when
|
|
// `-Zlink-native-libraries=no` is used.
|
|
|
|
//@ run-pass
|
|
//@ compile-flags: -Zlink-native-libraries=no -Cdefault-linker-libraries=yes
|
|
//@ ignore-fuchsia - missing __libc_start_main for some reason (#84733)
|
|
//@ ignore-cross-compile - default-linker-libraries=yes doesn't play well with cross compiling
|
|
|
|
//@ revisions: other
|
|
//@[other] ignore-msvc
|
|
|
|
//@ revisions: msvc
|
|
// On Windows MSVC, default-linker-libraries=yes doesn't work because
|
|
// rustc drives the linker directly instead of going through another compiler.
|
|
// Therefore rustc would need to implement default-linker-libraries itself but doesn't.
|
|
// So instead we use -Clink-arg to directly set the required msvcrt.lib as a link arg.
|
|
//@[msvc] compile-flags: -Clink-arg=msvcrt.lib
|
|
//@[msvc] only-msvc
|
|
|
|
// Usually these `#[link]` attribute would cause `libsome-random-non-existent-library`
|
|
// to be passed to the linker, causing it to fail because the file doesn't exist.
|
|
// However, -Zlink-native-libraries=no disables that.
|
|
#[link(name = "some-random-non-existent-library", kind = "static")]
|
|
extern "C" {}
|
|
|
|
fn main() {}
|