Looking for guidance on broken downstream bootstrapped runtimes builds

@petrhosek @sam-mccall

The commit in ⚙ D121838 Generalize "check-all" umbrella targets, use for check-clang-tools made a change that enables a more general, consistent way of defining tests for LLVM subprojects and runtimes. I’m looking for help on a downstream build system failure caused by this commit when using a bootstrapping runtime build. My comments on the review have gone unanswered.

Specifically, this commit adds a push/pop mechanism for an ‘umbrella’ test suite, which captures common variables of the for LLVM_${name}_LIT_* and creates a lit target for check-* targets.

A change to runtimes/CMakeLists specifically removes a line that adds a target, ‘runtimes-test-depends’ to the specific runtimes external projects.

Link to deleted line

When llvm/runtimes/CMakeLists is included with LLVM_INCLUDE_TESTS=ON, the runtimes targets are expected to define the ‘runtimes-test-depends’ target.

runtimes-test-depends target:

Adding each target’s runtime build to runtimes-test-depends dependencies:

EXTRA_TARGET for runtimes-test-depends being added to each runtime external project:

The result here is that runtimes-test-depends depends on the external project’s runtimes-test-depends target, which no longer exists, and results in a build failure. I haven’t attempted to reproduce this on a pure branch due to the complexity of some of the runtimes stuff, but I suspect simply taking any runtimes build and setting LLVM_INCLUDE_TESTS to ON would cause this to fire.

1 Like