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