Using compiler-rt/lib/builtins CMake file to build builtins forces compiler-rt CMake build to assume that it is being built as standalone which results in builtins being installed in the library directory instead of Clang resource directory as it does when compiler-rt is built from within projects. Using top-level CMake file to build compiler-rt builtins solves this issue.
The entire point of using the subdirectory as the entry point is that the compiler capabilities checks do not require a fully functioning cross toolchain. This is essential for bootstraps in many situations.
The correct fix here would be to override the install path, not stop using the subdirectory.
Alternatively, we could modify compiler-rt's CMake build to use llvm-config to figure out the correct install path and Clang version when being built as standalone (although that's somewhat orthogonal to this issue).