From ae6229dee20da04b2120dc97cdfae800c136e42a Mon Sep 17 00:00:00 2001 From: "Daryl W. Grunau" Date: Thu, 7 Nov 2019 18:05:16 -0700 Subject: llvm: fix PythonString::GetString for >=python-3.7 (#13631) * llvm: fix PythonString::GetString for >=python-3.7 * llvm/package.py: fix when the patch should be applied --- .../repos/builtin/packages/llvm/llvm_py37.patch | 37 ++++++++++++++++++++++ var/spack/repos/builtin/packages/llvm/package.py | 5 +++ 2 files changed, 42 insertions(+) create mode 100644 var/spack/repos/builtin/packages/llvm/llvm_py37.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/llvm/llvm_py37.patch b/var/spack/repos/builtin/packages/llvm/llvm_py37.patch new file mode 100644 index 0000000000..9369019d8a --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/llvm_py37.patch @@ -0,0 +1,37 @@ +From ecdefed7f6ba11421fe1ecc6c13a135ab7bcda73 Mon Sep 17 00:00:00 2001 +From: Pavel Labath +Date: Mon, 23 Jul 2018 11:37:36 +0100 +Subject: [PATCH] Fix PythonString::GetString for >=python-3.7 + +The return value of PyUnicode_AsUTF8AndSize is now "const char *". +--- + .../Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +index 6a9d57d5a..94f16b2c7 100644 +--- a/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp ++++ b/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +@@ -404,14 +404,16 @@ llvm::StringRef PythonString::GetString() const { + return llvm::StringRef(); + + Py_ssize_t size; +- char *c; ++ const char *data; + + #if PY_MAJOR_VERSION >= 3 +- c = PyUnicode_AsUTF8AndSize(m_py_obj, &size); ++ data = PyUnicode_AsUTF8AndSize(m_py_obj, &size); + #else ++ char *c; + PyString_AsStringAndSize(m_py_obj, &c, &size); ++ data = c; + #endif +- return llvm::StringRef(c, size); ++ return llvm::StringRef(data, size); + } + + size_t PythonString::GetSize() const { +-- +2.18.0.233.g985f88cf7e-goog + diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index eaba6d7b86..8cb863b445 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -604,6 +604,11 @@ class Llvm(CMakePackage): # for a bug report about this problem in llvm master. patch('constexpr_longdouble.patch', when='@6:8+libcxx') + # Backport from llvm master; see + # https://bugs.llvm.org/show_bug.cgi?id=38233 + # for a bug report about this problem in llvm master. + patch('llvm_py37.patch', when='@4:6 ^python@3.7:') + @run_before('cmake') def check_darwin_lldb_codesign_requirement(self): if not self.spec.satisfies('+lldb platform=darwin'): -- cgit v1.2.3-60-g2f50