jrtc27 added a comment.

In D91442#2399753 <https://reviews.llvm.org/D91442#2399753>, @jrtc27 wrote:

> In D91442#2399750 <https://reviews.llvm.org/D91442#2399750>, @abidh wrote:
>
>> 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.
>
> Relative paths should be relative to the current working directory. That is 
> what everyone expects and is what every other argument does (and see `=` and 
> `$SYSROOT` for how GCC and compatible drivers get around that in cases like 
> -I).

And how is that accidental? It looks to me like the correct behaviour naturally 
falls out just as it normally does in that by default anything involving a 
relative path automatically interprets it relative to the current working 
directory.


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