Up to now I’ve generally used source builds of clang directly from the build tree without running install. It just seemed easier to me when I’m often updating and rebuilding, and I haven’t had any problems doing so. However recently I’ve tried to use the libc++ std library module, with my build system relying on the -print-library-module-manifest-path option to get at libc++.modules.json. This JSON file includes relative paths to the module sources, which point to a directory that doesn’t exist in my build tree (<build-root>/share/libc++/) and so the build fails. If I install clang, the installation has things in the right place and all is good.
So my question is simply, is this an oversight on the LLVM side, or am I wrong to expect to be able to use it in this way?