Require clang in stage 1 when enabling stage 2 / test-suite
Both the test-suite and stage 2 need clang, so check early that it is
built as part of stage 1.
I'm not 100% certain on the former, since nowadays the test-suite
contains some bitcode tests which might be able to run without clang,
but it's unlikely that we'll ever be interested in such a scenario.
Change-Id: I6668557d9c2ef8cbad8a309a3c73c690d24533d1
diff --git a/scripts/llvm.py b/scripts/llvm.py
index 1962293..70ba713 100644
--- a/scripts/llvm.py
+++ b/scripts/llvm.py
@@ -208,6 +208,15 @@
sandboxDir = args.sandbox
testSuiteFlags = args.testSuiteFlags
+ if not "clang" in stage1Subprojs:
+ if enableTestSuite:
+ die("Can't enable the test-suite if stage 1 doesn't build clang."
+ "Please add clang to the subprojects to be built for stage 1.")
+
+ if stage2BuildDir:
+ die("Can't enable stage 2 if stage 1 doesn't build clang."
+ "Please add clang to the subprojects to be built for stage 1.")
+
if dryRun:
consumer = CommandPrinter()
else:
@@ -246,8 +255,6 @@
buildConfig2 = LLVMBuildConfig(sourceConfig, stage2BuildDir,
consumer)
- # TODO: Make sure clang is actually built in this config (preferably
- # before reaching this point)
buildConfig2.cmake(
stage2Defs + [
"-DCMAKE_C_COMPILER={}/bin/clang".format(stage1BuildDir),
@@ -262,8 +269,6 @@
setup_test_suite(consumer, sandboxDir, lntDir)
- # TODO: Make sure clang is actually built in this config (preferably
- # before reaching this point)
lit = os.path.join(testedBuildDir, "bin", "llvm-lit")
clang = os.path.join(testedBuildDir, "bin", "clang")
run_test_suite(consumer, sandboxDir, testSuiteDir, lit,