SUMMARY = "Real-Time Linux Analysis tool" LICENSE = "GPL-2.0-only" DEPENDS = "libtraceevent libtracefs" PROVIDES = "virtual/rtla" B = "${WORKDIR}/${BPN}-${PV}" inherit kernelsrc kernel-arch pkgconfig do_populate_lic[depends] += "virtual/kernel:do_shared_workdir" PACKAGECONFIG ??= "" PACKAGECONFIG[cpupower] = ",,cpupower" EXTRA_OEMAKE = "V=1 -C ${S}/tools/tracing/rtla O=${B} CROSS=${TARGET_PREFIX} \ CC="${CC} ${DEBUG_PREFIX_MAP} -D_GNU_SOURCE" LD="${LD}" AR=${AR} ARCH=${ARCH} \ BUILD_BPF_SKEL=0" do_compile() { # Older kernels (before 6.9) use a standalone rtla Makefile that does not honor # O= so outputs land in the kernel source tree (shared workdir). Remove # build output to make sure it is rebuilt. For newer kernels this wil be a no-op. rm -f ${S}/tools/tracing/rtla/rtla rm -f ${S}/tools/tracing/rtla/src/*.o # Older kernels need additional variable EXTRA_LDFLAGS to pick up correct linker options. export EXTRA_LDFLAGS="${LDFLAGS}" oe_runmake } do_install() { install -d ${D}${bindir} # Older kernels (before 6.9) use a standalone rtla Makefile that does not honor # O= for the final binary, so it ends up in the kernel source tree. rtla_bin="${B}/rtla" [ -f "${rtla_bin}" ] || rtla_bin="${S}/tools/tracing/rtla/rtla" install -m 755 "${rtla_bin}" ${D}${bindir}/rtla # rtla, osnoise, hwnoise, and timerlat are all the same binary ln -s rtla ${D}${bindir}/osnoise ln -s rtla ${D}${bindir}/hwnoise ln -s rtla ${D}${bindir}/timerlat } PACKAGE_ARCH = "${MACHINE_ARCH}"