From 6570a6fe92002d352fecbaad0176c678030c6d2e Mon Sep 17 00:00:00 2001 From: DianQK Date: Tue, 22 Oct 2024 10:46:10 +0800 Subject: [PATCH] Add a test case for #131164 --- .../rust-lld-link-script-provide/main.rs | 7 +++++++ .../rust-lld-link-script-provide/rmake.rs | 18 ++++++++++++++++++ .../rust-lld-link-script-provide/script.t | 1 + 3 files changed, 26 insertions(+) create mode 100644 tests/run-make/rust-lld-link-script-provide/main.rs create mode 100644 tests/run-make/rust-lld-link-script-provide/rmake.rs create mode 100644 tests/run-make/rust-lld-link-script-provide/script.t diff --git a/tests/run-make/rust-lld-link-script-provide/main.rs b/tests/run-make/rust-lld-link-script-provide/main.rs new file mode 100644 index 00000000000..5c19e7a4bbf --- /dev/null +++ b/tests/run-make/rust-lld-link-script-provide/main.rs @@ -0,0 +1,7 @@ +#[no_mangle] +fn foo() {} + +#[no_mangle] +fn bar() {} + +fn main() {} diff --git a/tests/run-make/rust-lld-link-script-provide/rmake.rs b/tests/run-make/rust-lld-link-script-provide/rmake.rs new file mode 100644 index 00000000000..e78a411bc15 --- /dev/null +++ b/tests/run-make/rust-lld-link-script-provide/rmake.rs @@ -0,0 +1,18 @@ +// This test ensures that the “symbol not found” error does not occur +// when the symbols in the `PROVIDE` of the link script can be eliminated. +// This is a regression test for #131164. + +//@ needs-rust-lld +//@ only-x86_64-unknown-linux-gnu + +use run_make_support::rustc; + +fn main() { + rustc() + .input("main.rs") + .arg("-Zlinker-features=+lld") + .arg("-Clink-self-contained=+linker") + .arg("-Zunstable-options") + .link_arg("-Tscript.t") + .run(); +} diff --git a/tests/run-make/rust-lld-link-script-provide/script.t b/tests/run-make/rust-lld-link-script-provide/script.t new file mode 100644 index 00000000000..4c4c6ddfc36 --- /dev/null +++ b/tests/run-make/rust-lld-link-script-provide/script.t @@ -0,0 +1 @@ +PROVIDE(foo = bar);