summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/systemtap
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/systemtap')
-rw-r--r--meta/recipes-kernel/systemtap/systemtap-native_git.bb2
-rw-r--r--meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb40
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch61
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch44
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.bb41
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc13
6 files changed, 92 insertions, 109 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap-native_git.bb b/meta/recipes-kernel/systemtap/systemtap-native_git.bb
index 19cc1cf0f0..2690b259c8 100644
--- a/meta/recipes-kernel/systemtap/systemtap-native_git.bb
+++ b/meta/recipes-kernel/systemtap/systemtap-native_git.bb
@@ -1,6 +1,6 @@
require systemtap_git.bb
-inherit native
+inherit_defer native
addtask addto_recipe_sysroot after do_populate_sysroot before do_build
diff --git a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb b/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb
deleted file mode 100644
index 46820ef489..0000000000
--- a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "UProbes kernel module for SystemTap"
-
-require systemtap_git.inc
-
-DEPENDS = "systemtap virtual/kernel"
-
-# On systems without CONFIG_UTRACE, this package is empty.
-ALLOW_EMPTY_${PN} = "1"
-
-inherit module-base gettext
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemtap:"
-
-FILES_${PN} += "${datadir}/systemtap/runtime/uprobes"
-
-# Compile and install the uprobes kernel module on machines with utrace
-# support. Note that staprun expects it in the systemtap/runtime directory,
-# not in /lib/modules.
-do_compile() {
- if grep -q "CONFIG_UTRACE=y" ${STAGING_KERNEL_BUILDDIR}/.config
- then
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
- oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
- AR="${KERNEL_AR}" \
- -C ${STAGING_KERNEL_DIR} scripts
- oe_runmake KDIR=${STAGING_KERNEL_DIR} \
- M="${S}/runtime/uprobes/" \
- CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
- AR="${KERNEL_AR}" \
- -C "${S}/runtime/uprobes/"
- fi
-}
-
-do_install() {
- if [ -e "${S}/runtime/uprobes/uprobes.ko" ]
- then
- install -d ${D}${datadir}/systemtap/runtime/uprobes/
- install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}${datadir}/systemtap/runtime/uprobes/
- fi
-}
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
new file mode 100644
index 0000000000..1decf21593
--- /dev/null
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch
@@ -0,0 +1,61 @@
+From 191f528da19193d713d94ee252e2485efd9af4d3 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
+
+Upstream-Status: Submitted [by email to smakarov@redhat.com,systemtap@sourceware.org]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ staprun/monitor.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/staprun/monitor.c b/staprun/monitor.c
+index 478634c09..f4fbfd686 100644
+--- a/staprun/monitor.c
++++ b/staprun/monitor.c
+@@ -448,12 +448,12 @@ void monitor_render(void)
+ if (active_window == 0)
+ wattron(status, A_BOLD);
+ wprintw(status, "\n%*s\t%*s\t%*s\t%*s\t%*s\t%*s\t%s\n",
+- width[p_index], HIGHLIGHT("index", p_index, comp_fn_index),
+- width[p_state], HIGHLIGHT("state", p_state, comp_fn_index),
+- width[p_hits], HIGHLIGHT("hits", p_hits, comp_fn_index),
+- width[p_min], HIGHLIGHT("min", p_min, comp_fn_index),
+- width[p_avg], HIGHLIGHT("avg", p_avg, comp_fn_index),
+- width[p_max], HIGHLIGHT("max", p_max, comp_fn_index),
++ (int)width[p_index], HIGHLIGHT("index", p_index, comp_fn_index),
++ (int)width[p_state], HIGHLIGHT("state", p_state, comp_fn_index),
++ (int)width[p_hits], HIGHLIGHT("hits", p_hits, comp_fn_index),
++ (int)width[p_min], HIGHLIGHT("min", p_min, comp_fn_index),
++ (int)width[p_avg], HIGHLIGHT("avg", p_avg, comp_fn_index),
++ (int)width[p_max], HIGHLIGHT("max", p_max, comp_fn_index),
+ HIGHLIGHT("name", p_name, comp_fn_index));
+ if (active_window == 0)
+ wattroff(status, A_BOLD);
+@@ -466,17 +466,17 @@ void monitor_render(void)
+ json_object *probe, *field;
+ probe = json_object_array_get_idx(jso_probe_list, i);
+ json_object_object_get_ex(probe, "index", &field);
+- wprintw(status, "%*s\t", width[p_index], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_index], json_object_get_string(field));
+ json_object_object_get_ex(probe, "state", &field);
+- wprintw(status, "%*s\t", width[p_state], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_state], json_object_get_string(field));
+ json_object_object_get_ex(probe, "hits", &field);
+- wprintw(status, "%*s\t", width[p_hits], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_hits], json_object_get_string(field));
+ json_object_object_get_ex(probe, "min", &field);
+- wprintw(status, "%*s\t", width[p_min], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_min], json_object_get_string(field));
+ json_object_object_get_ex(probe, "avg", &field);
+- wprintw(status, "%*s\t", width[p_avg], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_avg], json_object_get_string(field));
+ json_object_object_get_ex(probe, "max", &field);
+- wprintw(status, "%*s\t", width[p_max], json_object_get_string(field));
++ wprintw(status, "%*s\t", (int)width[p_max], json_object_get_string(field));
+ getyx(status, discard, cur_x);
+ json_object_object_get_ex(probe, "name", &field);
+ wprintw(status, "%.*s", max_cols-cur_x-1, json_object_get_string(field));
+--
+2.20.1
+
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch b/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch
deleted file mode 100644
index efc79f6c0f..0000000000
--- a/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From cbf27cd54071f788231e69d96dbaad563f1010d4 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Fri, 18 Dec 2020 13:15:08 -0500
-Subject: [PATCH] transport: protect include and callsite with same conditional
-
-transport.c has the following code block:
-
- if (!debugfs_p && security_locked_down (LOCKDOWN_DEBUGFS))
-
-Which is protected by the conditional STAPCONF_LOCKDOWN_DEBUGFS.
-
-linux/security.h provides the definition of LOCKDOWN_DEBUGFS, and
-must be included or we have a compilation issue.
-
-The include of security.h is protected by #ifdef CONFIG_SECURITY_LOCKDOWN_LSM,
-which means that in some configurations we can get out of sync with
-the include and the callsite.
-
-If we protect the include and the callsite with the same #ifdef, we can
-be sure that they will be consistent.
-
-Upstream-status: Inappropriate (kernel-devsrc specific)
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- runtime/transport/transport.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
-index bb4a98bd3..88e20ea28 100644
---- a/runtime/transport/transport.c
-+++ b/runtime/transport/transport.c
-@@ -21,7 +21,7 @@
- #include <linux/namei.h>
- #include <linux/delay.h>
- #include <linux/mutex.h>
--#ifdef CONFIG_SECURITY_LOCKDOWN_LSM
-+#ifdef STAPCONF_LOCKDOWN_DEBUGFS
- #include <linux/security.h>
- #endif
- #include "../uidgid_compatibility.h"
---
-2.19.1
-
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb
index c4a6eef59a..68f5c76428 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -6,7 +6,10 @@ HOMEPAGE = "https://sourceware.org/systemtap/"
require systemtap_git.inc
-SRC_URI += "file://0001-improve-reproducibility-for-c-compiling.patch"
+SRC_URI += " \
+ file://0001-improve-reproducibility-for-c-compiling.patch \
+ file://0001-staprun-address-ncurses-6.3-failures.patch \
+ "
DEPENDS = "elfutils"
@@ -21,58 +24,62 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs"
EXTRA_OECONF += "${STAP_DOCS} "
-PACKAGECONFIG ??= "translator sqlite monitor python3-probes"
+PACKAGECONFIG ??= "translator sqlite monitor python3-probes ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
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[debuginfod] = "--with-debuginfod, --without-debuginfod"
inherit autotools gettext pkgconfig systemd
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'distutils3-base', '', d)}
+inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'setuptools3-base', '', d)}
+
+# | ../git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=]
+CXXFLAGS += "-Wno-dangling-pointer"
# exporter comes with python3-probes
PACKAGES =+ "${PN}-exporter"
-FILES_${PN}-exporter = "${sysconfdir}/stap-exporter/* \
+FILES:${PN}-exporter = "${sysconfdir}/stap-exporter/* \
${sysconfdir}/sysconfig/stap-exporter \
- ${systemd_unitdir}/system/stap-exporter.service \
+ ${systemd_system_unitdir}/stap-exporter.service \
${sbindir}/stap-exporter"
-RDEPENDS_${PN}-exporter = "${PN} python3-core python3-netclient"
-SYSTEMD_SERVICE_${PN}-exporter = "stap-exporter.service"
+RDEPENDS:${PN}-exporter = "${PN} python3-core python3-netclient"
+SYSTEMD_SERVICE:${PN}-exporter = "stap-exporter.service"
PACKAGES =+ "${PN}-runtime"
-FILES_${PN}-runtime = "\
+FILES:${PN}-runtime = "\
${bindir}/staprun \
${bindir}/stap-merge \
${bindir}/stapsh \
${libexecdir}/${BPN}/stapio \
"
-RDEPENDS_${PN}_class-target += "${PN}-runtime"
+RDEPENDS:${PN}:class-target += "${PN}-runtime"
PACKAGES =+ "${PN}-examples"
-FILES_${PN}-examples = "${datadir}/${BPN}/examples/"
-RDEPENDS_${PN}-examples += "${PN}"
+FILES:${PN}-examples = "${datadir}/${BPN}/examples/"
+RDEPENDS:${PN}-examples += "${PN}"
# don't complain that some examples involve bash, perl, php...
-INSANE_SKIP_${PN}-examples += "file-rdeps"
+INSANE_SKIP:${PN}-examples += "file-rdeps"
PACKAGES =+ "${PN}-python"
-FILES_${PN}-python += "\
+FILES:${PN}-python += "\
${bindir}/dtrace \
${libdir}/python*/ \
${libexecdir}/${BPN}/python/ \
"
# python material requires sdt headers
-RDEPENDS_${PN}-python += "${PN}-dev python3-core"
-INSANE_SKIP_${PN}-python += "dev-deps"
+RDEPENDS:${PN}-python += "${PN}-dev python3-core"
+INSANE_SKIP:${PN}-python += "dev-deps"
-do_configure_prepend () {
+do_configure:prepend () {
# Improve reproducibility for c++ object files
reltivepath="${@os.path.relpath(d.getVar('STAGING_INCDIR'), d.getVar('S'))}"
sed -i "s:@RELATIVE_STAGING_INCDIR@:$reltivepath:g" ${S}/stringtable.h
}
-do_install_append () {
+do_install:append () {
if [ ! -f ${D}${bindir}/stap ]; then
# translator disabled case, need to leave only minimal runtime
rm -rf ${D}${datadir}/${PN}
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index 016b423847..cc9fc81430 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,17 +1,16 @@
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "988f439af39a359b4387963ca4633649866d8275"
-PV = "4.4"
+SRCREV = "3a0c9c15163520dd0d9ab07177da62ce9cc2332f"
+PV = "5.1"
-SRC_URI = "git://sourceware.org/git/systemtap.git \
+SRC_URI = "git://sourceware.org/git/systemtap.git;branch=master;protocol=https \
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://0001-transport-protect-include-and-callsite-with-same-con.patch \
"
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips).*-linux'
-COMPATIBLE_HOST_libc-musl = 'null'
+COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64).*-linux'
+COMPATIBLE_HOST:libc-musl = 'null'
S = "${WORKDIR}/git"