llvm: fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH (#32584)
This commit is contained in:
parent
045a5e80cb
commit
ebb20eb8f8
29
var/spack/repos/builtin/packages/llvm/D133513.diff
Normal file
29
var/spack/repos/builtin/packages/llvm/D133513.diff
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Index: lldb/bindings/python/get-python-config.py
|
||||||
|
===================================================================
|
||||||
|
--- lldb/bindings/python/get-python-config.py
|
||||||
|
+++ lldb/bindings/python/get-python-config.py
|
||||||
|
@@ -44,15 +44,21 @@
|
||||||
|
elif args.variable_name == "LLDB_PYTHON_EXE_RELATIVE_PATH":
|
||||||
|
tried = list()
|
||||||
|
exe = sys.executable
|
||||||
|
- prefix = os.path.realpath(sys.prefix)
|
||||||
|
+ prefix = sys.prefix
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
print(relpath_nodots(exe, prefix))
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
tried.append(exe)
|
||||||
|
- if os.path.islink(exe):
|
||||||
|
- exe = os.path.join(os.path.realpath(os.path.dirname(exe)), os.readlink(exe))
|
||||||
|
+ real_exe_dirname = os.path.realpath(os.path.dirname(exe))
|
||||||
|
+ real_prefix = os.path.realpath(prefix)
|
||||||
|
+ if prefix != real_prefix:
|
||||||
|
+ prefix = real_prefix
|
||||||
|
+ exe = os.path.join(real_exe_dirname, os.path.basename(exe))
|
||||||
|
+ continue
|
||||||
|
+ elif os.path.islink(exe):
|
||||||
|
+ exe = os.path.join(real_exe_dirname, os.readlink(exe))
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
print("Could not find a relative path to sys.executable under sys.prefix", file=sys.stderr)
|
@ -377,6 +377,12 @@ class Llvm(CMakePackage, CudaPackage):
|
|||||||
when="@8:11",
|
when="@8:11",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH
|
||||||
|
# see https://reviews.llvm.org/D133513
|
||||||
|
# TODO: adjust version constraint and switch to fetching from the upstream GitHub repo
|
||||||
|
# when/if the bugfix is merged
|
||||||
|
patch("D133513.diff", level=0, when="@14:15+lldb+python")
|
||||||
|
|
||||||
# The functions and attributes below implement external package
|
# The functions and attributes below implement external package
|
||||||
# detection for LLVM. See:
|
# detection for LLVM. See:
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user