systemtap: build and install uprobes.ko

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.

(From OE-Core rev: 3cc4ba935444240b93abdc726342658ada803118)

Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Wade Farnsworth 2012-02-06 07:49:14 -07:00 committed by Richard Purdie
parent c2c215b887
commit 98a994acff
3 changed files with 61 additions and 15 deletions

View File

@ -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
}

View File

@ -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"

View File

@ -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"