On Tue, Jan 24, 2012 at 1:49 PM, Wade Farnsworth <wade_farnswo...@mentor.com> wrote: > 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_farnswo...@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 > +}
could this module be baked as a standalone recipe instead? since this now depends on kernel makes systemtap to be machine specific _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core