[PATCH] D57343: lit: Let lit.util.which() return a normcase()ed path
Nico Weber via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 28 11:08:10 PST 2019
thakis created this revision.
thakis added a reviewer: zturner.
Herald added a subscriber: delcypher.
Herald added a reviewer: serge-sans-paille.
`LLVMConfig.with_environment()` uses `os.path.normcase(os.path.normpath(x))` to normalize temporary env vars. `LLVMConfig.use_clang()` uses `with_environment()` to temporarily set `PATH` and then look for clang there. This means that on Windows, clang will be run with a path like `c:\foo\bin\clang.EXE` (with a lower-case "C:").
`lit.util.which()` used to not do this, which means the executables added in clang/test/lit.cfg.py (e.g. c-index-test) were run with a path like `C:\foo\bin\c-index-test.EXE` (because both CMake and GN happen to write `clang_tools_dir` with an upper-case C to lit.site.cfg.py).
clang/test/Index/pch-from-libclang.c requires that both c-index-test and clang use _exactly_ the same resource dir path (same case and everything), because a hash of the resource directory is used as module cache path.
This patch is necessary but not sufficient to make pch-from-libclang.c pass on Windows.
https://reviews.llvm.org/D57343
Files:
llvm/utils/lit/lit/util.py
Index: llvm/utils/lit/lit/util.py
===================================================================
--- llvm/utils/lit/lit/util.py
+++ llvm/utils/lit/lit/util.py
@@ -197,7 +197,7 @@
# Check for absolute match first.
if os.path.isabs(command) and os.path.isfile(command):
- return os.path.normpath(command)
+ return os.path.normcase(os.path.normpath(command))
# Would be nice if Python had a lib function for this.
if not paths:
@@ -215,7 +215,7 @@
for ext in pathext:
p = os.path.join(path, command + ext)
if os.path.exists(p) and not os.path.isdir(p):
- return os.path.normpath(p)
+ return os.path.normcase(os.path.normpath(p))
return None
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57343.183912.patch
Type: text/x-patch
Size: 755 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190128/173edf2c/attachment.bin>
More information about the cfe-commits
mailing list