tests/run-make: port issue-84395-lto-embed-bitcode
to rmake.rs
Co-authored-by: Oneirical <manchot@videotron.ca>
This commit is contained in:
parent
ef743af119
commit
e641b6c2bd
@ -2,7 +2,6 @@ run-make/branch-protection-check-IBT/Makefile
|
||||
run-make/cat-and-grep-sanity-check/Makefile
|
||||
run-make/extern-fn-reachable/Makefile
|
||||
run-make/incr-add-rust-src-component/Makefile
|
||||
run-make/issue-84395-lto-embed-bitcode/Makefile
|
||||
run-make/jobserver-error/Makefile
|
||||
run-make/libs-through-symlinks/Makefile
|
||||
run-make/split-debuginfo/Makefile
|
||||
|
@ -1,14 +0,0 @@
|
||||
# needs-force-clang-based-tests
|
||||
|
||||
# FIXME(#126180): This test doesn't actually run anywhere, because the only
|
||||
# CI job that sets RUSTBUILD_FORCE_CLANG_BASED_TESTS runs very few tests.
|
||||
|
||||
# This test makes sure the embed bitcode in elf created with
|
||||
# lto-embed-bitcode=optimized is valid llvm BC module.
|
||||
|
||||
include ../tools.mk
|
||||
|
||||
all:
|
||||
$(RUSTC) test.rs --target $(TARGET) -Clink-arg=-fuse-ld=lld -Clinker-plugin-lto -Clinker=$(CLANG) -Clink-arg=-Wl,--plugin-opt=-lto-embed-bitcode=optimized -Zemit-thin-lto=no
|
||||
$(LLVM_BIN_DIR)/objcopy --dump-section .llvmbc=$(TMPDIR)/test.bc $(TMPDIR)/test
|
||||
$(LLVM_BIN_DIR)/llvm-dis $(TMPDIR)/test.bc
|
27
tests/run-make/issue-84395-lto-embed-bitcode/rmake.rs
Normal file
27
tests/run-make/issue-84395-lto-embed-bitcode/rmake.rs
Normal file
@ -0,0 +1,27 @@
|
||||
//! Smoke test to make sure the embed bitcode in elf created with
|
||||
//! `--plugin-opt=-lto-embed-bitcode=optimized` is valid llvm BC module.
|
||||
//!
|
||||
//! See <https://github.com/rust-lang/rust/issues/84395> where passing
|
||||
//! `-lto-embed-bitcode=optimized` to lld when linking rust code via `linker-plugin-lto` doesn't
|
||||
//! produce the expected result.
|
||||
//!
|
||||
//! See PR <https://github.com/rust-lang/rust/pull/98162> which initially introduced this test.
|
||||
|
||||
//@ needs-force-clang-based-tests
|
||||
|
||||
use run_make_support::{env_var, llvm_dis, llvm_objcopy, rustc};
|
||||
|
||||
fn main() {
|
||||
rustc()
|
||||
.input("test.rs")
|
||||
.arg("-Clink-arg=-fuse-ld=lld")
|
||||
.arg("-Clinker-plugin-lto")
|
||||
.arg(format!("-Clinker={}", env_var("CLANG")))
|
||||
.arg("-Clink-arg=-Wl,--plugin-opt=-lto-embed-bitcode=optimized")
|
||||
.arg("-Zemit-thin-lto=no")
|
||||
.run();
|
||||
|
||||
llvm_objcopy().dump_section(".llvmbc", "test.bc").arg("test").run();
|
||||
|
||||
llvm_dis().arg("test.bc").run();
|
||||
}
|
Loading…
Reference in New Issue
Block a user