[OE-core] [PATCH 3/3] systemtap: build and install uprobes.ko
Wade Farnsworth
wade_farnsworth at mentor.com
Tue Jan 24 21:49:01 UTC 2012
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 <wade_farnsworth at mentor.com>
---
meta/recipes-kernel/systemtap/systemtap_git.bb | 57 ++++++++++++++++++++++-
1 files changed, 54 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb
index 298e005..22f3993 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -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
+}
--
1.7.0.4
More information about the Openembedded-core
mailing list