diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs/Makefile | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs/Makefile b/src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs/Makefile new file mode 100644 index 000000000..f70b411d7 --- /dev/null +++ b/src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs/Makefile @@ -0,0 +1,32 @@ +-include ../tools.mk + +# ignore windows due to libLLVM being present in PATH and the PATH and library path being the same +# (so fixing it is harder). See #57765 for context +ifndef IS_WINDOWS + +# This test makes sure that we don't loose upstream object files when compiling +# staticlibs with -C linker-plugin-lto + +all: staticlib.rs upstream.rs + $(RUSTC) upstream.rs -C linker-plugin-lto -Ccodegen-units=1 + + # Check No LTO + $(RUSTC) staticlib.rs -C linker-plugin-lto -Ccodegen-units=1 -L. -o $(TMPDIR)/staticlib.a + (cd $(TMPDIR); "$(LLVM_BIN_DIR)"/llvm-ar x ./staticlib.a) + # Make sure the upstream object file was included + ls $(TMPDIR)/upstream.*.rcgu.o + + # Cleanup + rm $(TMPDIR)/* + + # Check ThinLTO + $(RUSTC) upstream.rs -C linker-plugin-lto -Ccodegen-units=1 -Clto=thin + $(RUSTC) staticlib.rs -C linker-plugin-lto -Ccodegen-units=1 -Clto=thin -L. -o $(TMPDIR)/staticlib.a + (cd $(TMPDIR); "$(LLVM_BIN_DIR)"/llvm-ar x ./staticlib.a) + ls $(TMPDIR)/upstream.*.rcgu.o + +else + +all: + +endif |