llvm: fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH (#32584)

This commit is contained in:
Sergey Kosukhin 2022-09-14 20:45:41 +02:00 committed by GitHub
parent 045a5e80cb
commit ebb20eb8f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

View 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)

View file

@ -377,6 +377,12 @@ class Llvm(CMakePackage, CudaPackage):
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
# detection for LLVM. See:
#