diff --git a/meta/recipes-kernel/systemtap/systemtap-native_5.5.bb b/meta/recipes-kernel/systemtap/systemtap-native_5.6.bb
similarity index 100%
rename from meta/recipes-kernel/systemtap/systemtap-native_5.5.bb
rename to meta/recipes-kernel/systemtap/systemtap-native_5.6.bb
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch b/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch
index 8a6cc4e0a4..392950631e 100644
--- a/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch
@@ -1,4 +1,4 @@
-From adf505ededdd25cf43111fd12a59090a8f7de856 Mon Sep 17 00:00:00 2001
+From cba033a67d6d977cb5fa3862c4d3daa2eede08ba Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 22 Feb 2017 13:37:33 +0200
 Subject: [PATCH] Do not let configure write a python location into the dtrace
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch b/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch
deleted file mode 100644
index 6a3fa04bea..0000000000
--- a/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a261ee9efca120b6d65310a972d91dffc00ac937 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 24 Feb 2017 17:53:02 +0200
-Subject: [PATCH] Install python modules to correct library dir.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
-Add OE's CFLAGS which contains `-fdebug-prefix-map' options to
-setup.py
-
-Supply "--root" directory to the "install" command, and use
-it as a prefix to strip off the purported filename encoded
-in bytecode files. (It strips build path prefix from .pyc files)
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- python/Makefile.am | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 845db3661..130e90b24 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -8,6 +8,10 @@ AUTOMAKE_OPTIONS = subdir-objects
- AM_CPPFLAGS = -I$(abs_srcdir)/../includes
- AM_CPPFLAGS += -I$(abs_builddir)/../includes/sys
- 
-+# Add OE's CFLAGS which contains `-fdebug-prefix-map' options to
-+# fix build path issue
-+AM_CPPFLAGS += $(CFLAGS)
-+
- # Any script in the following variable will get byte-compiled at
- # install time.
- pkglibexecpython_PYTHON =
-@@ -47,7 +51,7 @@ install-exec-local:
- if HAVE_PYTHON2_PROBES
- 	(cd $(srcdir); CFLAGS="$(CFLAGS) $(AM_CPPFLAGS)" $(PYTHON) setup.py build \
-          --build-base $(shell readlink -f $(builddir))/py2build \
--	 install --prefix $(DESTDIR)$(prefix) \
-+	 install --root $(DESTDIR) --prefix $(prefix) --prefix $(prefix) --install-lib=${pythondir} \
- 	 --single-version-externally-managed \
- 	 --record $(shell readlink -f $(builddir))/py2build/install_files.txt \
-          --verbose)
-@@ -55,7 +59,7 @@ endif
- if HAVE_PYTHON3_PROBES
- 	(cd $(srcdir); CFLAGS="$(CFLAGS) $(AM_CPPFLAGS)" $(PYTHON3) setup.py build \
-          --build-base $(shell readlink -f $(builddir))/py3build \
--	 install --prefix $(DESTDIR)$(prefix) \
-+	 install --root $(DESTDIR) --prefix $(prefix) --install-lib=${python3dir} \
- 	 --single-version-externally-managed \
- 	 --record $(shell readlink -f $(builddir))/py3build/install_files.txt \
-          --verbose)
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch b/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
index 894cd3b407..970079ebcf 100644
--- a/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
@@ -1,4 +1,4 @@
-From 06522edad080caa76f5abc8586fe5baf3b620f16 Mon Sep 17 00:00:00 2001
+From e39dbf74b501632bc3e9761eb95894dc1c6b2d86 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Wed, 18 Jul 2018 16:58:33 +0800
 Subject: [PATCH] improve reproducibility for c++ compiling
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-python3.stpm-record-the-installed-libpython-path.patch b/meta/recipes-kernel/systemtap/systemtap/0001-python3.stpm-record-the-installed-libpython-path.patch
new file mode 100644
index 0000000000..93efec941b
--- /dev/null
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-python3.stpm-record-the-installed-libpython-path.patch
@@ -0,0 +1,58 @@
+From 0387b9416ad7c25d71685441e1046f1c72cb1d42 Mon Sep 17 00:00:00 2001
+From: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
+Date: Sat, 19 Sep 2026 13:12:44 +0000
+Subject: [PATCH 1/2] python3.stpm: record the installed libpython path
+
+tapset/python3.stpm is generated at build time and installed, and its
+stap_python3_libpython macro is the module argument of the @cast()s in
+tapset/python3.stp:
+
+    @cast(@object, "PyFrameObject", @stap_python3_libpython)
+
+@cast module names are taken literally -- dwarf_cast_expanding_visitor
+resolves them with find_executable(module, "", sess.sysenv), i.e. with no
+sysroot translation -- so the macro has to name libpython as it exists on
+the machine stap is tracing.
+
+configure instead derives it from sysconfig's LIBDIR for the interpreter
+that built HelperSDT.  When cross compiling that is a directory in the
+build host's staging area, which exists on no machine but the builder, so
+every python3 probe on the installed system fails to resolve
+PyFrameObject.  The installed file also ends up carrying a build
+directory, which distro QA checks reject (OpenEmbedded's buildpaths test
+flags it as a packaging error).
+
+Keep only the library soname from sysconfig and anchor it at the $(libdir)
+being installed into, so the macro names the installed library.  For a
+native build where the interpreter's LIBDIR is $(libdir) -- the usual case
+-- the generated value is unchanged.
+
+Upstream-Status: Submitted [https://inbox.sourceware.org/systemtap/20260919135744.78642-2-jaipaul.cheernam@est.tech/]
+Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
+---
+ Makefile.am | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1f668df..4d255dd 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -140,9 +140,17 @@ $(TAPSET_PYTHON3_STP): $(srcdir)/$(TAPSET_PYTHON3_CANDIDATE)
+ 	mkdir -p tapset # create build-tree tapset/ dir if needed
+ 	cp $< $@
+ 
++# The libpython path baked into python3.stpm is resolved at run time on the
++# machine being probed, so it has to be the installed location.  configure
++# gets PYTHON3_LIBPYTHON from sysconfig, whose LIBDIR points at the python
++# build/staging area; when cross compiling that is a build host directory
++# which does not exist on the target.  Keep only the library soname from
++# sysconfig and anchor it at the $(libdir) we are installing against.
++PYTHON3_LIBPYTHON_INSTALLED = $(libdir)/$(notdir $(PYTHON3_LIBPYTHON))
++
+ $(TAPSET_PYTHON3_STPM):
+ 	mkdir -p tapset # create build-tree tapset/ dir if needed
+-	@echo '@define stap_python3_libpython %("$(PYTHON3_LIBPYTHON)" %)' > $@
++	@echo '@define stap_python3_libpython %("$(PYTHON3_LIBPYTHON_INSTALLED)" %)' > $@
+ 
+ install: all
+ 	$(MAKE) $(AM_MAKEFLAGS) install-recursive
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
index 59c0e8a7fd..e58053c864 100644
--- a/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
@@ -1,4 +1,4 @@
-From 7672d0e398b29a52f59a1a0cbb75d4d07bd5f975 Mon Sep 17 00:00:00 2001
+From 949a5670611b67f070c58423c9f88b8837aaf443 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Mon, 25 Oct 2021 17:59:24 +0200
 Subject: [PATCH] staprun: address ncurses 6.3 failures
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch
index 8273e34b57..7bf723d5d3 100644
--- a/meta/recipes-kernel/systemtap/systemtap/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch
@@ -1,4 +1,4 @@
-From 3483d0bc400eb618add607097027eafb075722f4 Mon Sep 17 00:00:00 2001
+From f0150581619d331522a7f26fb24b445c4f305fa0 Mon Sep 17 00:00:00 2001
 From: Saul Wold <sgw@linux.intel.com>
 Date: Tue, 5 Sep 2017 16:02:55 -0700
 Subject: [PATCH] staprun/stapbpf: don't support installing a non-root
@@ -14,10 +14,10 @@ Signed-off-by: Saul Wold <sgw@linux.intel.com>
  1 file changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/stapbpf/Makefile.am b/stapbpf/Makefile.am
-index 4bd116bc3..e06d0801b 100644
+index 962b2dbec..ac24b7997 100644
 --- a/stapbpf/Makefile.am
 +++ b/stapbpf/Makefile.am
-@@ -40,10 +40,10 @@ git_version.stamp ../git_version.h:
+@@ -56,10 +56,10 @@ git_version.stamp ../git_version.h:
  
  # Why the "id -u" condition?  This way, an unprivileged user can run
  # make install, and have "sudo stap ...." or "sudo stapbpf ...." work later.
diff --git a/meta/recipes-kernel/systemtap/systemtap/0002-python-don-t-install-build-paths-with-the-wheel.patch b/meta/recipes-kernel/systemtap/systemtap/0002-python-don-t-install-build-paths-with-the-wheel.patch
new file mode 100644
index 0000000000..fcc64dfe44
--- /dev/null
+++ b/meta/recipes-kernel/systemtap/systemtap/0002-python-don-t-install-build-paths-with-the-wheel.patch
@@ -0,0 +1,49 @@
+From bdd46549b9065aafd06fb01743d21c41b27bfc05 Mon Sep 17 00:00:00 2001
+From: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
+Date: Sat, 19 Sep 2026 13:12:44 +0000
+Subject: [PATCH 2/2] python: don't install build paths with the wheel
+
+pip byte-compiles the module it installs using the paths it writes to, so
+with DESTDIR set every .pyc in HelperSDT/__pycache__ records a
+$(DESTDIR)-prefixed source file name, and PEP 610 direct_url.json records
+the file:// URL of the wheel in the build tree.  Neither names anything
+that exists on the installed system, and both make the install
+unreproducible; distro QA checks reject them (OpenEmbedded's buildpaths
+test fails the build on all four files).
+
+Pass --no-compile, so the bytecode is generated on first import in the
+right place, and delete direct_url.json after installing.
+
+Upstream-Status: Submitted [https://inbox.sourceware.org/systemtap/20260919135744.78642-3-jaipaul.cheernam@est.tech/]
+Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
+---
+ python/Makefile.am | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/python/Makefile.am b/python/Makefile.am
+index 0cb608d..1eaef4a 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -36,12 +36,21 @@ endif
+ 
+ 
+ # Note that we're installing from the wheel we just built.
++#
++# --no-compile: pip byte-compiles with the paths it writes to, so with
++# DESTDIR set the .pyc files record $(DESTDIR)-prefixed source names, which
++# are wrong on the installed system (and defeat reproducible builds).  The
++# bytecode is regenerated on first import instead.
++#
++# PEP 610 direct_url.json records the file:// URL of the wheel in the build
++# tree, which is likewise meaningless once installed, so drop it.
+ install-exec-local:
+ if HAVE_PYTHON3_PROBES
+ 	$(PYTHON3) -m pip install $(shell readlink -f $(builddir))/py3build/*.whl \
+ 		 $(if $(DESTDIR),--root $(DESTDIR)) --prefix $(prefix) \
+-		 --no-deps --no-index --no-build-isolation \
++		 --no-deps --no-index --no-build-isolation --no-compile \
+ 		 --ignore-installed --verbose
++	rm -f $(DESTDIR)$(python3dir)/*.dist-info/direct_url.json
+ endif
+ 
+ clean-local:
diff --git a/meta/recipes-kernel/systemtap/systemtap/readline.patch b/meta/recipes-kernel/systemtap/systemtap/readline.patch
index f452188179..f59f5bcb7f 100644
--- a/meta/recipes-kernel/systemtap/systemtap/readline.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/readline.patch
@@ -1,4 +1,4 @@
-From ee20cb1c1ca0337c56087934efbd66ba30d2d5c3 Mon Sep 17 00:00:00 2001
+From 6bd6439042b9fc1155568e8a476257925424b7cb Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@arm.com>
 Date: Mon, 13 Apr 2026 11:28:39 +0100
 Subject: [PATCH] configure: add option to enable/disable readline
@@ -18,10 +18,10 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
  1 file changed, 38 insertions(+), 29 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 6fb99da40..2ec72e85a 100644
+index 5bfc86f92..c1835ea51 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -525,38 +525,47 @@ AC_CHECK_HEADERS([rpm/rpmcrypto.h], [
+@@ -526,38 +526,47 @@ AC_CHECK_HEADERS([rpm/rpmcrypto.h], [
                        have_rpmcrypto_h=yes
  		      AC_MSG_NOTICE([separate rpm/rpmcrypto.h])])
  
diff --git a/meta/recipes-kernel/systemtap/systemtap_5.5.bb b/meta/recipes-kernel/systemtap/systemtap_5.6.bb
similarity index 94%
rename from meta/recipes-kernel/systemtap/systemtap_5.5.bb
rename to meta/recipes-kernel/systemtap/systemtap_5.6.bb
index 980c09d049..f0b14ef90a 100644
--- a/meta/recipes-kernel/systemtap/systemtap_5.5.bb
+++ b/meta/recipes-kernel/systemtap/systemtap_5.6.bb
@@ -9,6 +9,8 @@ require systemtap_git.inc
 SRC_URI += " \
            file://0001-improve-reproducibility-for-c-compiling.patch \
            file://0001-staprun-address-ncurses-6.3-failures.patch \
+           file://0001-python3.stpm-record-the-installed-libpython-path.patch \
+           file://0002-python-don-t-install-build-paths-with-the-wheel.patch \
            "
 
 DEPENDS = "elfutils"
@@ -16,7 +18,7 @@ DEPENDS = "elfutils"
 EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \
             --without-nss --without-avahi --without-dyninst \
             --disable-server --disable-grapher --enable-prologues \
-            --with-python3 --without-python2-probes \
+            --with-python3 \
             --with-extra-version="oe" \
             ac_cv_prog_have_javac=no \
             ac_cv_prog_have_jar=no "
@@ -30,7 +32,7 @@ PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,bash
 PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt"
 PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3"
 PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c"
-PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native"
+PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native python3-pip-native python3-wheel-native"
 PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod"
 PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
 
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index 7845905d10..9a12050e00 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -3,12 +3,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "git://sourceware.org/git/systemtap.git;protocol=https;branch=master;tag=release-${PV} \
            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://readline.patch \
            "
 
-SRCREV = "90b164cf106ef16f873ab58c8c6f653718bb6e17"
+SRCREV = "211e84349504077f0c84f759601b02f946465d29"
 
 COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64|riscv32).*-linux'
 COMPATIBLE_HOST:libc-musl = 'null'
