| // In some cases, linking libraries with GNU used to fail due to how | |
| // `std` and `core` possess a circular dependency with one another, and | |
| // how the linker could not go back through its symbol processing to resolve | |
| // the circular link. #49316 fixed this, and this test reproduces a minimal | |
| // version of one such linking attempt which used to fail. | |
| // See https://github.com/rust-lang/rust/issues/18807 | |
| //@ ignore-cross-compile | |
| use run_make_support::{is_darwin, is_windows, rustc}; | |
| fn main() { | |
| rustc().input("bar.rs").run(); | |
| let mut rustc_foo = rustc(); | |
| rustc_foo.input("foo.rs"); | |
| let mut rustc_foo_panic = rustc(); | |
| rustc_foo_panic.input("foo.rs").panic("abort"); | |
| if !is_darwin() && !is_windows() { | |
| rustc_foo.arg("-Clink-args=-Wl,--no-undefined"); | |
| rustc_foo_panic.arg("-Clink-args=-Wl,--no-undefined"); | |
| } | |
| rustc_foo.run(); | |
| rustc_foo_panic.run(); | |
| } |