diff mbox series

systemtap: add a patch to address a python 3.11 failure

Message ID 20220822081008.1356484-1-alex@linutronix.de
State Accepted, archived
Commit df312a4c8ad84a9d12c4eec94d48a66420c8988b
Headers show
Series systemtap: add a patch to address a python 3.11 failure | expand

Commit Message

Alexander Kanavin Aug. 22, 2022, 8:10 a.m. UTC
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 .../systemtap/systemtap/python-3.11.patch     | 37 +++++++++++++++++++
 .../systemtap/systemtap_git.inc               |  1 +
 2 files changed, 38 insertions(+)
 create mode 100644 meta/recipes-kernel/systemtap/systemtap/python-3.11.patch
diff mbox series

Patch

diff --git a/meta/recipes-kernel/systemtap/systemtap/python-3.11.patch b/meta/recipes-kernel/systemtap/systemtap/python-3.11.patch
new file mode 100644
index 0000000000..6e0c97b8d6
--- /dev/null
+++ b/meta/recipes-kernel/systemtap/systemtap/python-3.11.patch
@@ -0,0 +1,37 @@ 
+From 069e109c95d1afca17cd3781b39f220cf8b39978 Mon Sep 17 00:00:00 2001
+From: Stan Cox <scox@redhat.com>
+Date: Wed, 13 Jul 2022 09:49:51 -0400
+Subject: [PATCH 1/1] python 3.11 removed direct access to PyFrameObject
+ members
+
+Take into account the change in PyFrameObject definition to allow
+building systemtap with python 3.11.  Additional support for python
+3.11 is forthcoming.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=systemtap.git;a=commit;h=069e109c95d1afca17cd3781b39f220cf8b39978]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ python/HelperSDT/_HelperSDT.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/python/HelperSDT/_HelperSDT.c b/python/HelperSDT/_HelperSDT.c
+index 967cb6077..4d287132e 100644
+--- a/python/HelperSDT/_HelperSDT.c
++++ b/python/HelperSDT/_HelperSDT.c
+@@ -14,7 +14,13 @@
+ // PR25841: ensure that the libHelperSDT.so file contains debuginfo
+ // for the tapset helper functions, so they don't have to look into libpython*
+ #include <frameobject.h>
++// python 3.11 removed direct access to PyFrameObject members
++// https://docs.python.org/3.11/whatsnew/3.11.html#c-api-changes
++#if PY_MAJOR_VERSION <= 3 && PY_MINOR_VERSION < 11
+ PyFrameObject _dummy_frame;
++#else
++//PyFrameObject *_dummy_frame;
++#endif
+ #include <object.h>
+ PyVarObject _dummy_var;
+ #include <dictobject.h>
+-- 
+2.31.1
+
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index 2b79aa8fca..b05a5a2b0d 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -7,6 +7,7 @@  SRC_URI = "git://sourceware.org/git/systemtap.git;branch=master \
            file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
            file://0001-Install-python-modules-to-correct-library-dir.patch \
            file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \
+           file://python-3.11.patch \
            "
 
 COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64).*-linux'