From 9dcbac82c8618e5f77d2295f3bc71f8be9fcbad6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 6 Jul 2023 07:56:20 -0700 Subject: bpftrace: Upgrade to 0.18.0 Allow clang/llvm 17 to build it Signed-off-by: Khem Raj --- .../recipes-devtools/bpftrace/bpftrace_0.18.0.bb | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.18.0.bb (limited to 'dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.18.0.bb') diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.18.0.bb b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.18.0.bb new file mode 100644 index 0000000..0d7261f --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.18.0.bb @@ -0,0 +1,60 @@ +SUMMARY = "bpftrace" +HOMEPAGE = "https://github.com/iovisor/bpftrace" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS += "bison-native \ + flex-native \ + gzip-native \ + elfutils \ + bcc \ + systemtap \ + libcereal \ + libbpf \ + " + +PV .= "+git${SRCREV}" +RDEPENDS:${PN} += "bash python3 xz" + +SRC_URI = "git://github.com/iovisor/bpftrace;branch=master;protocol=https \ + file://0001-cmake-Raise-max-llvm-major-version-to-16.patch \ + file://run-ptest \ +" +SRCREV = "e199c7e73da84bff9fe744d1e3402c2b505aa5a2" + +S = "${WORKDIR}/git" + +inherit cmake ptest + +PACKAGECONFIG ?= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" + +# Clang-15.x crashes compiling some usdt tests +# see https://github.com/llvm/llvm-project/issues/58477 +PACKAGECONFIG:remove:riscv64 = "tests" + +PACKAGECONFIG[tests] = "-DBUILD_TESTING=ON,-DBUILD_TESTING=OFF,gtest xxd-native" + +do_install_ptest() { + if [ -e ${B}/tests/bpftrace_test ]; then + install -Dm 755 ${B}/tests/bpftrace_test ${D}${PTEST_PATH}/tests/bpftrace_test + cp -rf ${B}/tests/runtime ${D}${PTEST_PATH}/tests + cp -rf ${B}/tests/test* ${D}${PTEST_PATH}/tests + fi +} + +def llvm_major_version(d): + pvsplit = d.getVar('LLVMVERSION').split('.') + return pvsplit[0] + +LLVM_MAJOR_VERSION = "${@llvm_major_version(d)}" + +EXTRA_OECMAKE = " \ + -DCMAKE_ENABLE_EXPORTS=1 \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_REQUESTED_VERSION=${LLVM_MAJOR_VERSION} \ + -DUSE_SYSTEM_BPF_BCC=ON \ + -DENABLE_MAN=OFF \ +" + +COMPATIBLE_HOST = "(x86_64.*|aarch64.*|powerpc64.*|riscv64.*)-linux" +COMPATIBLE_HOST:libc-musl = "null" -- cgit v1.2.3-54-g00ecf