diff options
Diffstat (limited to 'meta/recipes-kernel/systemtap')
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" |