abidh added a comment.

In D91442#2399402 <https://reviews.llvm.org/D91442#2399402>, @lenary wrote:

> In D91442#2399341 <https://reviews.llvm.org/D91442#2399341>, @abidh wrote:
>
>> In D91442#2399200 <https://reviews.llvm.org/D91442#2399200>, @lenary wrote:
>>
>>> I'm worried about this change - I *think* it doesn't cover the existing 
>>> behaviour of a baremetal GCC toolchain being installed into the same prefix 
>>> as clang, and clang automatically picking up that baremetal gcc toolchain. 
>>> What should we expect to do here? This is especially an issue if you're 
>>> trying to make a relocatable toolchain tarball, where specifying 
>>> `--gcc-toolchain` automatically is difficult.
>>
>> Would it be possible to use a relative path with --gcc-toolchain then this 
>> can be checked in either RISCVToolChain.cpp or GNU.cpp and adjusted 
>> accordingly?
>
> The GCC toolchain, when given a relative path, already interprets it relative 
> to the working directory the compiler was invoked from, not the directory the 
> compiler is located in, iirc.

I dont think path is made absolute relative using working directory. What is 
happening is that if (!VFS.exists(Prefix)) call in the following line will 
succeed if the path existed relative to working directory. This seems 
accidental to me.

https://github.com/llvm/llvm-project/blob/5a9f3867046c4e1c97760e22a505f4d1d788417e/clang/lib/Driver/ToolChains/Gnu.cpp#L1947

I tried a small change to turn a relative --gcc-toolchain into absolute using 
the compiler installed path and it works ok.  If this is something that works 
for you then I can post a patch.


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

https://reviews.llvm.org/D91442

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

Reply via email to