[clang] [llvm] Revert "[lit][clang] Avoid realpath on Windows due to MAX_PATH limitations" (PR #139739)
Michael Jabbour via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 00:27:09 PDT 2025
michael-jabbour-sonarsource wrote:
Hi @tristanlabelle and thanks for your response,
> 1. Code pervasively access files through canonicalized paths rather than using canonicalized paths only for identity comparisons. The two usages are often conflated and can't be teased apart easily.
I understand that there are possibly many cases where retrieving the canonical path is not strictly needed, yet the code does it anyway. However, changing the way canonical path for everyone feels a bit drastic to me, as it can also break proper code that uses the canonical path for identity comparisons (especially with the current implementation limitations I listed earlier in mind). Could you elaborate more about the impact of this problem? Does its severity justify such a drastic change?
> 2. Hitting the Windows MAX_PATH limitation is a showstopper (broken builds or tests)
I also understand that without this change the `MAX_PATH` limitation can cause problems running the tests on certain environments. However, as I mentioned earlier, this change breaks the development environments for other environments (see [here](https://reviews.llvm.org/D154130#4647550)).
Furthermore, the change doesn't only fix the tests, but also alters the behavior in production. [The following comment](https://reviews.llvm.org/D154130#4515403) on phabricator caught my attention:
> Update clang path canonicalization to avoid resolving substitute drives (ie resolving to a path under a different root). This requires much less change to tests.
Maybe there is actually another way that relies on changing tests only? Do you happen to remember the context here? :smile:
I would also appreciate any other opinions on this.
https://github.com/llvm/llvm-project/pull/139739
More information about the llvm-commits
mailing list