jyknight added a comment. I think the diagnosis on the original issue was incorrect.
It seems to me that it was caused by the prefix being set as "/bin" instead of "/usr/bin", because clang _doesn't_ actually canonicalize its prefix, even when -no-canonical-prefixes isn't specified! All it does, now, is to make the prefix absolute -- without fully canonicalizing. I think that's simply a bug. If the prefix had been, properly, /usr/bin, then the include path would've been: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/iostream And in that case, it would've worked properly with ninja, without adding the feature in this patch. Reference clang/tools/driver/driver.cpp:297: // FIXME: We don't actually canonicalize this, we just make it absolute. if (CanonicalPrefixes) llvm::sys::fs::make_absolute(InstalledPath); Repository: rL LLVM https://reviews.llvm.org/D37954 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits