From 98054531607146f0893134a8022caf011f3d021e Mon Sep 17 00:00:00 2001 From: eabdullin Date: Mon, 30 Sep 2024 16:01:43 +0000 Subject: [PATCH] import CS lldb-18.1.8-1.el9 --- .gitignore | 4 +- .lldb.metadata | 4 +- .../0001-lldb-Adapt-code-to-Python-3.13.patch | 74 --------------- ...-usage-of-module-imp-with-module-imp.patch | 91 ------------------- SPECS/lldb.spec | 31 ++++--- 5 files changed, 22 insertions(+), 182 deletions(-) delete mode 100644 SOURCES/0001-lldb-Adapt-code-to-Python-3.13.patch delete mode 100644 SOURCES/0001-lldb-Replace-the-usage-of-module-imp-with-module-imp.patch diff --git a/.gitignore b/.gitignore index fe259e7..2e52f12 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/.lldb.metadata b/.lldb.metadata index 4f79ddc..5323275 100644 --- a/.lldb.metadata +++ b/.lldb.metadata @@ -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 diff --git a/SOURCES/0001-lldb-Adapt-code-to-Python-3.13.patch b/SOURCES/0001-lldb-Adapt-code-to-Python-3.13.patch deleted file mode 100644 index c18682f..0000000 --- a/SOURCES/0001-lldb-Adapt-code-to-Python-3.13.patch +++ /dev/null @@ -1,74 +0,0 @@ -From ed87035da34be675df7ea78bdf5f7631d81ab2db Mon Sep 17 00:00:00 2001 -From: Tulio Magno Quites Machado Filho -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 python::As(Expected &&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 - diff --git a/SOURCES/0001-lldb-Replace-the-usage-of-module-imp-with-module-imp.patch b/SOURCES/0001-lldb-Replace-the-usage-of-module-imp-with-module-imp.patch deleted file mode 100644 index cd1a70e..0000000 --- a/SOURCES/0001-lldb-Replace-the-usage-of-module-imp-with-module-imp.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 16fd09f102eff20825847e32f225715960d1c082 Mon Sep 17 00:00:00 2001 -From: Tulio Magno Quites Machado Filho -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 - diff --git a/SPECS/lldb.spec b/SPECS/lldb.spec index ae338ec..f5208a5 100644 --- a/SPECS/lldb.spec +++ b/SPECS/lldb.spec @@ -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 - 18.1.8-1 +- Update to 18.1.8 + +* Wed Jun 05 2024 Konrad Kleine - 18.1.6-3 +- Rebuild against clang-18.1.6-2 which defaults to DWARF4 + +* Mon Jun 03 2024 Konrad Kleine - 18.1.6-1 +- Update to 18.1.6 + * Mon Dec 11 2023 Timm Bäder - 17.0.6-1 - Update to 17.0.6