This will help speed up the builds.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
I've tested this on the PPC side. I am seeing object file differences at the end since we're no longer building for the native target for stage 3, for example:
# Comparing Phase 2 and Phase 3 files file llvm-config.cpp.o differs between phase 2 and phase 3 file LTODisassembler.cpp.o differs between phase 2 and phase 3 file lto.cpp.o differs between phase 2 and phase 3 file llvm-ar.cpp.o differs between phase 2 and phase 3 file llvm-lto.cpp.o differs between phase 2 and phase 3 file DependencyScanningService.cpp.o differs between phase 2 and phase 3 file cc1as_main.cpp.o differs between phase 2 and phase 3 file driver.cpp.o differs between phase 2 and phase 3 file cc1_main.cpp.o differs between phase 2 and phase 3 file ClangLinkerWrapper.cpp.o differs between phase 2 and phase 3 file ClangCheck.cpp.o differs between phase 2 and phase 3 file CIndex.cpp.o differs between phase 2 and phase 3 file bugpoint.cpp.o differs between phase 2 and phase 3 file dsymutil.cpp.o differs between phase 2 and phase 3 file llc.cpp.o differs between phase 2 and phase 3 file disassemble.c.o differs between phase 2 and phase 3 file targets.c.o differs between phase 2 and phase 3 file llvm-cfi-verify.cpp.o differs between phase 2 and phase 3 file llvm-cxxdump.cpp.o differs between phase 2 and phase 3 file llvm-dwarfdump.cpp.o differs between phase 2 and phase 3 file llvm-dwarfutil.cpp.o differs between phase 2 and phase 3 file llvm-dwp.cpp.o differs between phase 2 and phase 3 file llvm-gsymutil.cpp.o differs between phase 2 and phase 3 file llvm-isel-fuzzer.cpp.o differs between phase 2 and phase 3 file llvm-jitlink.cpp.o differs between phase 2 and phase 3 file llvm-libtool-darwin.cpp.o differs between phase 2 and phase 3 file llvm-lto2.cpp.o differs between phase 2 and phase 3 file llvm-mc.cpp.o differs between phase 2 and phase 3 file llvm-mca.cpp.o differs between phase 2 and phase 3 file llvm-ml.cpp.o differs between phase 2 and phase 3 file llvm-nm.cpp.o differs between phase 2 and phase 3 file llvm-objdump.cpp.o differs between phase 2 and phase 3 file llvm-opt-fuzzer.cpp.o differs between phase 2 and phase 3 file llvm-profgen.cpp.o differs between phase 2 and phase 3 file ReducerWorkItem.cpp.o differs between phase 2 and phase 3 file llvm-rtdyld.cpp.o differs between phase 2 and phase 3 file opt.cpp.o differs between phase 2 and phase 3 file sancov.cpp.o differs between phase 2 and phase 3
Are others also seeing this issue with this change?
I haven't tried the change - but the errors here makes sense. I bet those objects have references to the other targets and they will differ when we disable anything but Native. If we want to keep these checks we probably need to build all targets for phase 2 or filter the list of objects to compare.
I'm not sure I've every seen a build without file differences even without -DLLVM_TARGETS_TO_BUILD=Native. Is this check still useful? Alternatively we could only enable the Native target when the user passes the -no-compare-files option.