systemtap enhancements
PATCH 2/3 systemtap: extend the recipe to build the native package
In reply to Wade FarnsworthSince the target image may not contain dev tools, it is useful to provide native systemtap in order to be able to compile systemtap scripts for the target.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +6 -2
@@ -2,10 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3" +DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" +DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native" SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" -PR = "r3" +PR = "r4" PV = "1.6+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
@@ -28,4 +30,6 @@ S = "${WORKDIR}/git" inherit autotools gettext +BBCLASSEXTEND = "native nativesdk" + FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug"
Signature · 1 line
1.7.0.4
PATCH 3/3 systemtap: build and install uprobes.ko
In reply to Wade FarnsworthSystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the uprobes.ko on systems where it makes sense to.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 57 ++++++++++++++++++++++- 1 files changed, 54 insertions(+), 3 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +54 -3
@@ -2,12 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS = "elfutils sqlite3 systemtap-native virtual/kernel" DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native" SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" -PR = "r4" +PR = "r5" PV = "1.6+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
@@ -28,8 +28,59 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' S = "${WORKDIR}/git" -inherit autotools gettext +inherit autotools gettext module-base BBCLASSEXTEND = "native nativesdk" +FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug" + +# Compile and install the uprobes kernel module. Note that staprun +# expects it in the systemtap/runtime directory, not in /lib/modules. +# Note that we only build uprobes on machines with utrace support. +do_compile_uprobes() { + if grep -q "CONFIG_UTRACE=y" ${STAGING_KERNEL_DIR}/.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_compile_uprobes_virtclass-native() { + : +} + +do_compile_uprobes_virtclass-nativesdk() { + : +} + +do_compile_append() { + do_compile_uprobes +} + +do_install_uprobes() { + if [ -e "${S}/runtime/uprobes/uprobes.ko" ] + then + install -d ${D}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +} + +do_install_uprobes_virtclass-native() { + : +} + +do_install_uprobes_virtclass-nativesdk() { + : +} + +do_install_append() { + do_install_uprobes +}
Signature · 1 line
1.7.0.4
PATCH 1/3 Bump systemtap SRCREV
In reply to Wade FarnsworthBump systemtap SRCREV to pick up several changes including additional ARM enhancements.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +2 -2
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3" -SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" +SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" +PR = "r3" PV = "1.6+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
Signature · 1 line
1.7.0.4
cover systemtap enhancements
This provides several enhancements to the systemtap recipe to improve end user experience.
Wade Farnsworth (3):
Bump systemtap SRCREV
systemtap: extend the recipe to build the native package
systemtap: build and install uprobes.ko
meta/recipes-kernel/systemtap/systemtap_git.bb | 63 ++++++++++++++++++++++-- 1 files changed, 59 insertions(+), 4 deletions(-)
Re: [PATCH 3/3] systemtap: build and install uprobes.ko
In reply to Wade FarnsworthQuoted 79 lines · Wade Farnsworth
SystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the uprobes.ko on systems where it makes sense to.
Signed-off-by Wade Farnsworth <[email protected]>---
meta/recipes-kernel/systemtap/systemtap_git.bb | 57 ++++++++++++++++++++++-1 files changed, 54 insertions(+), 3 deletions(-)meta/recipes-kernel/systemtap/systemtap_git.bb +0
-0@@ -2,12 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analyLICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"meta/recipes-kernel/systemtap/systemtap_git.bb +1
-1-DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS = "elfutils sqlite3 systemtap-native virtual/kernel"DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native"
SRCREV = "
a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc"meta/recipes-kernel/systemtap/systemtap_git.bb +1
-1-PR = "r4" +PR = "r5"PV = "1.6+git${SRCPV}"
SRC_URI = "
git://sources.redhat.com/git/systemtap.git;protocol=git"meta/recipes-kernel/systemtap/systemtap_git.bb +0
-0@@ -28,8 +28,59 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux'S = "${WORKDIR}/git"
meta/recipes-kernel/systemtap/systemtap_git.bb +1
-1-inherit autotools gettext +inherit autotools gettext module-baseBBCLASSEXTEND = "native nativesdk"
+FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug"
meta/recipes-kernel/systemtap/systemtap_git.bb +40
-0+ +# Compile and install the uprobes kernel module. Note that staprun +# expects it in the systemtap/runtime directory, not in /lib/modules. +# Note that we only build uprobes on machines with utrace support. +do_compile_uprobes() { + if grep -q "CONFIG_UTRACE=y" ${STAGING_KERNEL_DIR}/.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_compile_uprobes_virtclass-native() { + : +} + +do_compile_uprobes_virtclass-nativesdk() { + : +} + +do_compile_append() { + do_compile_uprobes +} + +do_install_uprobes() { + if [ -e "${S}/runtime/uprobes/uprobes.ko" ] + then + install -d ${D}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +} + +do_install_uprobes_virtclass-native() {
meta/recipes-kernel/systemtap/systemtap_git.bb COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' · line 86
Quoted 10 lines
meta/recipes-kernel/systemtap/systemtap_git.bb +10
-0+ : +} + +do_install_uprobes_virtclass-nativesdk() { + : +} + +do_install_append() { + do_install_uprobes +}
could this module be baked as a standalone recipe instead? since this now depends on kernel makes systemtap to be machine specific
v2 cover systemtap enhancements
In reply to Wade FarnsworthThis provides several enhancements to the systemtap recipe to improve end user experience.
- v2: Move uprobes bits to a separate recipe per Khem's request.
Wade Farnsworth (3):
Bump systemtap SRCREV
systemtap: extend the recipe to build the native package
systemtap: build and install uprobes.ko
.../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 22 +++------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
PATCH v2 1/3 Bump systemtap SRCREV
Bump systemtap SRCREV to pick up several changes including additional ARM enhancements.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +2 -2
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3" -SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" +SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" +PR = "r3" PV = "1.6+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
Signature · 1 line
1.7.0.4
PATCH v2 2/3 systemtap: extend the recipe to build the native package
In reply to Wade FarnsworthSince the target image may not contain dev tools, it is useful to provide native systemtap in order to be able to compile systemtap scripts for the target.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +6 -2
@@ -2,10 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3" +DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" +DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native" SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" -PR = "r3" +PR = "r4" PV = "1.6+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
@@ -28,4 +30,6 @@ S = "${WORKDIR}/git" inherit autotools gettext +BBCLASSEXTEND = "native nativesdk" + FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug"
Signature · 1 line
1.7.0.4
PATCH v2 3/3 systemtap: build and install uprobes.ko
In reply to Wade FarnsworthSystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the module on systems that support it.
Additionally, split off common bits into systemtap_git.inc.
--- .../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 18 +------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +42 -0
@@ -0,0 +1,42 @@ +DESCRIPTION = "UProbes kernel module for SystemTap" + +require systemtap_git.inc + +DEPENDS = "virtual/gettext systemtap virtual/kernel" + +PR = "r0" + +# On systems without CONFIG_UTRACE, this package is empty. +ALLOW_EMPTY = 1 + +inherit module-base + +FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" + +EXTRA_OEMAKE = "" + +# 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_DIR}/.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}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +}
meta/recipes-kernel/systemtap/systemtap_git.bb +3 -15
@@ -1,16 +1,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analysis tool for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +require systemtap_git.inc DEPENDS = "elfutils sqlite3 systemtap-native" DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native" -SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" -PR = "r4" -PV = "1.6+git${SRCPV}" - -SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" +PR = "r5" EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_nss=no \
@@ -20,14 +16,6 @@ EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_avahi_client=no \ ac_cv_file__usr_include_avahi_common=no " -SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" -SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" - -# systemtap doesn't support mips -COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' - -S = "${WORKDIR}/git" - inherit autotools gettext BBCLASSEXTEND = "native nativesdk"
meta/recipes-kernel/systemtap/systemtap_git.inc new file +16 -0
@@ -0,0 +1,16 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "a56e4b7800e3fa8f9df6f4434cb02f86f6e995bc" +PV = "1.6+git${SRCPV}" + +SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" + +SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" +SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" + +# systemtap doesn't support mips +COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' + +S = "${WORKDIR}/git" +
Signature · 1 line
1.7.0.4
Re: [PATCH v2 2/3] systemtap: extend the recipe to build the native package
In reply to Wade FarnsworthQuoted 14 lines · Wade Farnsworth
Since the target image may not contain dev tools, it is useful to provide native systemtap in order to be able to compile systemtap scripts for the target.
Signed-off-by Wade Farnsworth <[email protected]>--- meta/recipes-kernel/systemtap/systemtap_git.bb | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)meta/recipes-kernel/systemtap/systemtap_git.bb +0
-0
meta/recipes-kernel/systemtap/systemtap_git.bb DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy · line 7
Quoted 7 lines
meta/recipes-kernel/systemtap/systemtap_git.bb +3
-1@@ -2,10 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3" +DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS_virtclass-native = "elfutils sqlite3 gettext-native" +DEPENDS_virtclass-nativesdk = "elfutils sqlite3 gettext-native"
This looks wrong, a -native shouldn't be depending on a non-native recipe? (likewise -nativesdk, shouldn't those be -nativesdk dependencies?)
Cheers,
Richard
Re: [PATCH v2 3/3] systemtap: build and install uprobes.ko
In reply to Wade FarnsworthQuoted 20 lines · Wade Farnsworth
SystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the module on systems that support it.
Additionally, split off common bits into systemtap_git.inc.
Signed-off-by Wade Farnsworth <[email protected]>--- .../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 18 +------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.incmeta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +0
-0
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb line 10
Quoted 10 lines
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +10
-0@@ -0,0 +1,42 @@ +DESCRIPTION = "UProbes kernel module for SystemTap" + +require systemtap_git.inc + +DEPENDS = "virtual/gettext systemtap virtual/kernel" + +PR = "r0" + +# On systems without CONFIG_UTRACE, this package is empty. +ALLOW_EMPTY = 1
This should really be:
ALLOW_EMPTY_${PN} = "1"
Cheers,
Richard
v3 cover systemtap enhancements
In reply to Wade FarnsworthThis provides several enhancements to the systemtap recipe to improve end user experience.
- v2: Move uprobes bits to a separate recipe
- v3: Fix -native[sdk] DEPENDS in systemtap_git.bb Change to ALLOW_EMPTY_${PN} in systemtap-uprobes_git.bb Updated SRCREV to pull stable version 1.7
Wade Farnsworth (3):
Bump systemtap SRCREV
systemtap: extend the recipe to build the native package
systemtap: build and install uprobes.ko
.../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 22 +++------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
PATCH v3 1/3 systemtap: bump SRCREV to grab version 1.7
Bump SRCREV to the latest stable version of systemtap.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +3 -3
@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3" -SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" -PV = "1.6+git${SRCPV}" +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PR = "r3" +PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
Signature · 1 line
1.7.0.4
PATCH v3 2/3 systemtap: extend the recipe to build the native package
In reply to Wade FarnsworthSince the target image may not contain dev tools, it is useful to provide native systemtap in order to be able to compile systemtap scripts for the target.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +6 -2
@@ -2,10 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3" +DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS_virtclass-native = "elfutils-native sqlite3-native gettext-native" +DEPENDS_virtclass-nativesdk = "elfutils-nativesdk sqlite3-nativesdk gettext-nativesdk" SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" -PR = "r3" +PR = "r4" PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
@@ -28,4 +30,6 @@ S = "${WORKDIR}/git" inherit autotools gettext +BBCLASSEXTEND = "native nativesdk" + FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug"
Signature · 1 line
1.7.0.4
PATCH v3 3/3 systemtap: build and install uprobes.ko
In reply to Wade FarnsworthSystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the module on systems that support it.
Additionally, split off common bits into systemtap_git.inc.
--- .../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 18 +------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +42 -0
@@ -0,0 +1,42 @@ +DESCRIPTION = "UProbes kernel module for SystemTap" + +require systemtap_git.inc + +DEPENDS = "virtual/gettext systemtap virtual/kernel" + +PR = "r0" + +# On systems without CONFIG_UTRACE, this package is empty. +ALLOW_EMPTY_${PN} = 1 + +inherit module-base + +FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" + +EXTRA_OEMAKE = "" + +# 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_DIR}/.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}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +}
meta/recipes-kernel/systemtap/systemtap_git.bb +3 -15
@@ -1,16 +1,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analysis tool for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +require systemtap_git.inc DEPENDS = "elfutils sqlite3 systemtap-native" DEPENDS_virtclass-native = "elfutils-native sqlite3-native gettext-native" DEPENDS_virtclass-nativesdk = "elfutils-nativesdk sqlite3-nativesdk gettext-nativesdk" -SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" -PR = "r4" -PV = "1.7+git${SRCPV}" - -SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" +PR = "r5" EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_nss=no \
@@ -20,14 +16,6 @@ EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_avahi_client=no \ ac_cv_file__usr_include_avahi_common=no " -SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" -SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" - -# systemtap doesn't support mips -COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' - -S = "${WORKDIR}/git" - inherit autotools gettext BBCLASSEXTEND = "native nativesdk"
meta/recipes-kernel/systemtap/systemtap_git.inc new file +16 -0
@@ -0,0 +1,16 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PV = "1.7+git${SRCPV}" + +SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" + +SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" +SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" + +# systemtap doesn't support mips +COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' + +S = "${WORKDIR}/git" +
Signature · 1 line
1.7.0.4
Re: [PATCH v3 1/3] systemtap: bump SRCREV to grab version 1.7
In reply to Wade FarnsworthQuoted 12 lines · Wade Farnsworth
Bump SRCREV to the latest stable version of systemtap.
Signed-off-by Wade Farnsworth <[email protected]>--- meta/recipes-kernel/systemtap/systemtap_git.bb | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)meta/recipes-kernel/systemtap/systemtap_git.bb +0
-0
meta/recipes-kernel/systemtap/systemtap_git.bb LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" · line 8
Quoted 8 lines
meta/recipes-kernel/systemtap/systemtap_git.bb +2
-3@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3" -SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" -PV = "1.6+git${SRCPV}" +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PR = "r3"
since PV was being upped PR could have been reset to 0
Quoted 7 lines
meta/recipes-kernel/systemtap/systemtap_git.bb +1
-0+PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"Signature · 1 line
1.7.0.4
Signature · 1 line
-Khem
Re: [PATCH v3 3/3] systemtap: build and install uprobes.ko
In reply to Wade FarnsworthQuoted 20 lines · Wade Farnsworth
SystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the module on systems that support it.
Additionally, split off common bits into systemtap_git.inc.
Signed-off-by Wade Farnsworth <[email protected]>--- .../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 18 +------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.incmeta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +0
-0
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb line 5
Quoted 5 lines
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +5
-0@@ -0,0 +1,42 @@ +DESCRIPTION = "UProbes kernel module for SystemTap" + +require systemtap_git.inc + +DEPENDS = "virtual/gettext systemtap virtual/kernel"
would inheriting gettext class be better here ?
Quoted 101 lines
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +37
-0+ +PR = "r0" + +# On systems without CONFIG_UTRACE, this package is empty. +ALLOW_EMPTY_${PN} = 1 + +inherit module-base + +FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" + +EXTRA_OEMAKE = "" + +# 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_DIR}/.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}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +}meta/recipes-kernel/systemtap/systemtap_git.bb +3
-15@@ -1,16 +1,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analysis tool for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +require systemtap_git.inc DEPENDS = "elfutils sqlite3 systemtap-native" DEPENDS_virtclass-native = "elfutils-native sqlite3-native gettext-native" DEPENDS_virtclass-nativesdk = "elfutils-nativesdk sqlite3-nativesdk gettext-nativesdk" -SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" -PR = "r4" -PV = "1.7+git${SRCPV}" - -SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" +PR = "r5" EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_nss=no \@@ -20,14 +16,6 @@ EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_avahi_client=no \ ac_cv_file__usr_include_avahi_common=no " -SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" -SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" - -# systemtap doesn't support mips -COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' - -S = "${WORKDIR}/git" - inherit autotools gettext BBCLASSEXTEND = "native nativesdk"meta/recipes-kernel/systemtap/systemtap_git.inc new file +16
-0@@ -0,0 +1,16 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PV = "1.7+git${SRCPV}" + +SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" + +SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" +SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" + +# systemtap doesn't support mips +COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' + +S = "${WORKDIR}/git" +Signature · 1 line
1.7.0.4
Signature · 1 line
-Khem
v4 cover systemtap enhancements
In reply to Wade FarnsworthThis provides several enhancements to the systemtap recipe to improve end user experience.
- v2: Move uprobes bits to a separate recipe
- v3: Fix -native[sdk] DEPENDS in systemtap_git.bb Change to ALLOW_EMPTY_${PN} in systemtap-uprobes_git.bb Updated SRCREV to pull stable version 1.7
- v4: Reset PR due to change in PV for systemtap_git.bb Make systemtap-uprobes_git.bb inherit gettext
Wade Farnsworth (3):
systemtap: bump SRCREV to grab version 1.7
systemtap: extend the recipe to build the native package
systemtap: build and install uprobes.ko
.../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 22 +++------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
PATCH v4 1/3 systemtap: bump SRCREV to grab version 1.7
Bump SRCREV to the latest stable version of systemtap.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +3 -3
@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3" -SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" -PV = "1.6+git${SRCPV}" +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PR = "r0" +PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
Signature · 1 line
1.7.0.4
PATCH v4 2/3 systemtap: extend the recipe to build the native package
In reply to Wade FarnsworthSince the target image may not contain dev tools, it is useful to provide native systemtap in order to be able to compile systemtap scripts for the target.
--- meta/recipes-kernel/systemtap/systemtap_git.bb | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
meta/recipes-kernel/systemtap/systemtap_git.bb +6 -2
@@ -2,10 +2,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analy LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "elfutils sqlite3" +DEPENDS = "elfutils sqlite3 systemtap-native" +DEPENDS_virtclass-native = "elfutils-native sqlite3-native gettext-native" +DEPENDS_virtclass-nativesdk = "elfutils-nativesdk sqlite3-nativesdk gettext-nativesdk" SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" -PR = "r0" +PR = "r1" PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
@@ -28,4 +30,6 @@ S = "${WORKDIR}/git" inherit autotools gettext +BBCLASSEXTEND = "native nativesdk" + FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug"
Signature · 1 line
1.7.0.4
PATCH v4 3/3 systemtap: build and install uprobes.ko
In reply to Wade FarnsworthSystemTap needs to provide uprobes.ko in order to support user space probing. Build and install the module on systems that support it.
Additionally, split off common bits into systemtap_git.inc.
--- .../systemtap/systemtap-uprobes_git.bb | 42 ++++++++++++++++++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 18 +------- meta/recipes-kernel/systemtap/systemtap_git.inc | 16 +++++++ 3 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb create mode 100644 meta/recipes-kernel/systemtap/systemtap_git.inc
meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb new file +42 -0
@@ -0,0 +1,42 @@ +DESCRIPTION = "UProbes kernel module for SystemTap" + +require systemtap_git.inc + +DEPENDS = "systemtap virtual/kernel" + +PR = "r0" + +# On systems without CONFIG_UTRACE, this package is empty. +ALLOW_EMPTY_${PN} = 1 + +inherit module-base gettext + +FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" + +EXTRA_OEMAKE = "" + +# 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_DIR}/.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}/usr/share/systemtap/runtime/uprobes/ + install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}/usr/share/systemtap/runtime/uprobes/ + fi +}
meta/recipes-kernel/systemtap/systemtap_git.bb +3 -15
@@ -1,16 +1,12 @@ DESCRIPTION = "SystemTap - script-directed dynamic tracing and performance analysis tool for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +require systemtap_git.inc DEPENDS = "elfutils sqlite3 systemtap-native" DEPENDS_virtclass-native = "elfutils-native sqlite3-native gettext-native" DEPENDS_virtclass-nativesdk = "elfutils-nativesdk sqlite3-nativesdk gettext-nativesdk" -SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" -PR = "r1" -PV = "1.7+git${SRCPV}" - -SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" +PR = "r2" EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_nss=no \
@@ -20,14 +16,6 @@ EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ ac_cv_file__usr_include_avahi_client=no \ ac_cv_file__usr_include_avahi_common=no " -SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" -SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" - -# systemtap doesn't support mips -COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' - -S = "${WORKDIR}/git" - inherit autotools gettext BBCLASSEXTEND = "native nativesdk"
meta/recipes-kernel/systemtap/systemtap_git.inc new file +16 -0
@@ -0,0 +1,16 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PV = "1.7+git${SRCPV}" + +SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git" + +SRC_URI[md5sum] = "cb202866ed704c44a876d041f788bdee" +SRC_URI[sha256sum] = "8ffe35caec0d937bd23fd78a3a8d94b58907cc0de0330b35e38f9f764815c459" + +# systemtap doesn't support mips +COMPATIBLE_HOST = '(x86_64.*|i.86.*|powerpc.*|arm.*)-linux' + +S = "${WORKDIR}/git" +
Signature · 1 line
1.7.0.4
Re: [PATCH v4 1/3] systemtap: bump SRCREV to grab version 1.7
In reply to Wade FarnsworthQuoted 14 lines · Wade Farnsworth
Bump SRCREV to the latest stable version of systemtap.
Signed-off-by Wade Farnsworth<[email protected]>--- meta/recipes-kernel/systemtap/systemtap_git.bb | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)meta/recipes-kernel/systemtap/systemtap_git.bb +0
-0@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "elfutils sqlite3"
meta/recipes-kernel/systemtap/systemtap_git.bb LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" · line 12
Quoted 10 lines
meta/recipes-kernel/systemtap/systemtap_git.bb +3
-3-SRCREV = "820f2d22fc47fad6e09ba886efb9b91e1247cb39" -PR = "r2" -PV = "1.6+git${SRCPV}" +SRCREV = "83bd2699d8cff2f2d6b9eaf5ea254e4cb6b33e81" +PR = "r0" +PV = "1.7+git${SRCPV}" SRC_URI = "git://sources.redhat.com/git/systemtap.git;protocol=git"
Merged v4 into OE-core
Thanks for your support
Sau!