import CS lldb-18.1.8-1.el9

This commit is contained in:
eabdullin 2024-09-30 16:01:43 +00:00
parent 18b3df142b
commit 9805453160
5 changed files with 22 additions and 182 deletions

4
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/lldb-17.0.6.src.tar.xz
SOURCES/lldb-17.0.6.src.tar.xz.sig
SOURCES/lldb-18.1.8.src.tar.xz
SOURCES/lldb-18.1.8.src.tar.xz.sig

View File

@ -1,2 +1,2 @@
fc7260e1768ad2ee3b9d5a91d90d17e58e20df14 SOURCES/lldb-17.0.6.src.tar.xz
fe7372c59ada760ed06814ed92c24c47fb2a055d SOURCES/lldb-17.0.6.src.tar.xz.sig
eac6716105261a6ba57a3b0ad6926b1800bade17 SOURCES/lldb-18.1.8.src.tar.xz
f2a31f2d2a04b5e0d33b24bd565714ea2687d8f0 SOURCES/lldb-18.1.8.src.tar.xz.sig

View File

@ -1,74 +0,0 @@
From ed87035da34be675df7ea78bdf5f7631d81ab2db Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@redhat.com>
Date: Wed, 25 Oct 2023 10:48:53 -0300
Subject: [PATCH] [lldb] Adapt code to Python 3.13
1. Remove usage of PyEval_ThreadsInitialized and PyEval_InitThreads
Both of these functions were removed in Python 3.13 [1] after being
deprecated since Python 3.9.
According to "What's new in Python 3.13" document [1]:
Since Python 3.7, Py_Initialize() always creates the GIL: calling
PyEval_InitThreads() did nothing and PyEval_ThreadsInitialized()
always returned non-zero.
2. Replace _Py_IsFinalizing() with Py_IsFinalizing().
[1] https://docs.python.org/3.13/whatsnew/3.13.html
---
.../ScriptInterpreter/Python/PythonDataObjects.cpp | 4 +++-
.../ScriptInterpreter/Python/ScriptInterpreterPython.cpp | 9 +++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
index 9ac840a4a102..fe3438c42471 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
@@ -71,7 +71,9 @@ Expected<std::string> python::As<std::string>(Expected<PythonObject> &&obj) {
}
static bool python_is_finalizing() {
-#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 7
+#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 13) || (PY_MAJOR_VERSION > 3)
+ return Py_IsFinalizing();
+#elif PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 7
return _Py_Finalizing != nullptr;
#else
return _Py_IsFinalizing();
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index a57c8e4984ad..968cc8ca0300 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -179,18 +179,27 @@ private:
return;
#endif
+// `PyEval_ThreadsInitialized` was deprecated in Python 3.9 and removed in
+// Python 3.13. It has been returning `true` always since Python 3.7.
+#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9) || (PY_MAJOR_VERSION < 3)
if (PyEval_ThreadsInitialized()) {
+#endif
Log *log = GetLog(LLDBLog::Script);
m_was_already_initialized = true;
m_gil_state = PyGILState_Ensure();
LLDB_LOGV(log, "Ensured PyGILState. Previous state = {0}locked\n",
m_gil_state == PyGILState_UNLOCKED ? "un" : "");
+
+// `PyEval_InitThreads` was deprecated in Python 3.9 and removed in
+// Python 3.13.
+#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9) || (PY_MAJOR_VERSION < 3)
return;
}
// InitThreads acquires the GIL if it hasn't been called before.
PyEval_InitThreads();
+#endif
}
PyGILState_STATE m_gil_state = PyGILState_UNLOCKED;
--
2.41.0

View File

@ -1,91 +0,0 @@
From 16fd09f102eff20825847e32f225715960d1c082 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@redhat.com>
Date: Wed, 25 Oct 2023 10:48:53 -0300
Subject: [PATCH] [lldb] Replace the usage of module imp with module importlib
imp got removed in Python 3.12 [1] and the community recommends using
importlib in newer Python versions.
[1] https://docs.python.org/3.12/whatsnew/3.12.html#imp
---
lldb/scripts/use_lldb_suite.py | 30 ++++++++++++++++++++++--------
lldb/test/API/use_lldb_suite.py | 29 +++++++++++++++++++++--------
2 files changed, 43 insertions(+), 16 deletions(-)
diff --git a/lldb/scripts/use_lldb_suite.py b/lldb/scripts/use_lldb_suite.py
index 6388d87b181c..4cedfa532cf9 100644
--- a/lldb/scripts/use_lldb_suite.py
+++ b/lldb/scripts/use_lldb_suite.py
@@ -17,10 +17,25 @@ def find_lldb_root():
return lldb_root
lldb_root = find_lldb_root()
-import imp
-fp, pathname, desc = imp.find_module("use_lldb_suite_root", [lldb_root])
-try:
- imp.load_module("use_lldb_suite_root", fp, pathname, desc)
-finally:
- if fp:
- fp.close()
+
+# Module imp got removed in Python 3.12.
+if (
+ sys.version_info.major == 3 and sys.version_info.minor >= 12
+) or sys.version_info.major > 3:
+ import importlib.machinery
+ import importlib.util
+
+ path = os.path.join(lldb_root, "use_lldb_suite_root.py")
+ loader = importlib.machinery.SourceFileLoader("use_lldb_suite_root", path)
+ spec = importlib.util.spec_from_loader("use_lldb_suite_root", loader=loader)
+ module = importlib.util.module_from_spec(spec)
+ loader.exec_module(module)
+else:
+ import imp
+
+ fp, pathname, desc = imp.find_module("use_lldb_suite_root", [lldb_root])
+ try:
+ imp.load_module("use_lldb_suite_root", fp, pathname, desc)
+ finally:
+ if fp:
+ fp.close()
diff --git a/lldb/test/API/use_lldb_suite.py b/lldb/test/API/use_lldb_suite.py
index e237dd4b8a56..c9332d9921b4 100644
--- a/lldb/test/API/use_lldb_suite.py
+++ b/lldb/test/API/use_lldb_suite.py
@@ -20,11 +20,24 @@ def find_lldb_root():
lldb_root = find_lldb_root()
-import imp
-
-fp, pathname, desc = imp.find_module("use_lldb_suite_root", [lldb_root])
-try:
- imp.load_module("use_lldb_suite_root", fp, pathname, desc)
-finally:
- if fp:
- fp.close()
+# Module imp got removed in Python 3.12.
+if (
+ sys.version_info.major == 3 and sys.version_info.minor >= 12
+) or sys.version_info.major > 3:
+ import importlib.machinery
+ import importlib.util
+
+ path = os.path.join(lldb_root, "use_lldb_suite_root.py")
+ loader = importlib.machinery.SourceFileLoader("use_lldb_suite_root", path)
+ spec = importlib.util.spec_from_loader("use_lldb_suite_root", loader=loader)
+ module = importlib.util.module_from_spec(spec)
+ loader.exec_module(module)
+else:
+ import imp
+
+ fp, pathname, desc = imp.find_module("use_lldb_suite_root", [lldb_root])
+ try:
+ imp.load_module("use_lldb_suite_root", fp, pathname, desc)
+ finally:
+ if fp:
+ fp.close()
--
2.41.0

View File

@ -1,7 +1,11 @@
%global toolchain clang
# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer
# https://bugzilla.redhat.com/show_bug.cgi?id=2158587
%undefine _include_frame_pointers
%global gts_version 13
%global lldb_version 17.0.6
%global lldb_version 18.1.8
#global rc_ver 4
%global lldb_srcdir %{name}-%{lldb_version}%{?rc_ver:rc%{rc_ver}}.src
@ -16,11 +20,6 @@ Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{lldb_v
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{lldb_version}%{?rc_ver:-rc%{rc_ver}}/%{lldb_srcdir}.tar.xz.sig
Source2: release-keys.asc
# Backport from https://github.com/llvm/llvm-project/pull/70443
Patch: 0001-lldb-Replace-the-usage-of-module-imp-with-module-imp.patch
# Backport from https://github.com/llvm/llvm-project/pull/70445
Patch: 0001-lldb-Adapt-code-to-Python-3.13.patch
BuildRequires: clang
BuildRequires: cmake
BuildRequires: ninja-build
@ -75,12 +74,7 @@ The package contains the LLDB Python module.
%build
%global _lto_cflags -flto=thin
%ifarch %ix86
# Linking liblldb.so goes out of memory even with ThinLTO and a single link job.
%global _lto_cflags %nil
%endif
%cmake -GNinja \
%cmake -GNinja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
@ -135,17 +129,28 @@ rm -f %{buildroot}%{python3_sitearch}/six.*
%files
%license LICENSE.TXT
%{_bindir}/lldb*
# Usually, *.so symlinks are kept in devel subpackages. However, the python
# bindings depend on this symlink at runtime.
%{_libdir}/*.so
%{_libdir}/liblldb.so.*
%{_libdir}/liblldbIntelFeatures.so.*
%files devel
%{_includedir}/lldb
%{_libdir}/*.so
%files -n python3-lldb
%{python3_sitearch}/lldb
%changelog
* Wed Jul 17 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.8-1
- Update to 18.1.8
* Wed Jun 05 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.6-3
- Rebuild against clang-18.1.6-2 which defaults to DWARF4
* Mon Jun 03 2024 Konrad Kleine <kkkleine@redhat.com> - 18.1.6-1
- Update to 18.1.6
* Mon Dec 11 2023 Timm Bäder <tbaeder@redhat.com> - 17.0.6-1
- Update to 17.0.6