jansvoboda11 added a comment.

Tagging @kousikk, since this is related to D69122 
<https://reviews.llvm.org/D69122> that introduced `ResourceDirectoryCache` to 
`clang-scan-deps`. When the compilation command doesn't have a `-resource-dir` 
argument, `ResourceDirectoryCache` invokes the specified compiler with 
`-print-resource-dir` and injects the result into the command-line as 
`-resource-dir`.

This happens way before the dependency scanner worker is invoked, meaning the 
logic this patch tweaks won't usually kick in. The test passes only because the 
invocation of `/our/custom/bin/clang -print-resource-dir` made by 
`ResourceDirectoryCache` silently fails (the binary doesn't exist), allowing 
the worker to deduce the resource directory using regular driver logic.

I think both `clang-scan-deps` and the downstream libclang API clearly head 
towards only supporting compilers built the same way (same version, 
architecture, etc.). The modular dependency scanner already returns 
command-lines of cc1 arguments that are not stable across Clang versions.

I wanted to see if we can reach consensus on removing `ResourceDirectoryCache` 
entirely. It makes the resource directory deduction much more lightweight and 
is in line with the direction we're already going regarding compiler 
compatibility. It also allows `clang-scan-deps` and libclang API to have the 
same behavior, which is a desirable property IMO. If users really want the 
behavior of `ResourceDirectoryCache`, they can keep using prior versions 
`clang-scan-deps`.

What do you all think?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108366/new/

https://reviews.llvm.org/D108366

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to