| SUMMARY = "UProbes kernel module for SystemTap" |
| HOMEPAGE = "https://sourceware.org/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}" OBJCOPY="${KERNEL_OBJCOPY}" \ |
| STRIP="${KERNEL_STRIP}" \ |
| -C ${STAGING_KERNEL_DIR} scripts |
| oe_runmake KDIR=${STAGING_KERNEL_DIR} \ |
| M="${S}/runtime/uprobes/" \ |
| CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ |
| AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \ |
| STRIP="${KERNEL_STRIP}" \ |
| -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 |
| } |