mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-02 21:54:05 +00:00
This resolves USDT probe test failures on ARM64 platforms. Without these changes, the .note.stapsdt section containing probe information was missing entirely on ARM64, causing test failures when attempting to find and attach to USDT probes in the BCC test suite. Upstream-Status: Submitted [https://github.com/iovisor/bcc/pull/5491] Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
98 lines
4.3 KiB
BlitzBasic
98 lines
4.3 KiB
BlitzBasic
SUMMARY = "BPF Compiler Collection (BCC)"
|
|
HOMEPAGE = "https://github.com/iovisor/bcc"
|
|
LICENSE = "Apache-2.0"
|
|
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
|
|
|
inherit cmake python3native manpages ptest
|
|
|
|
DEPENDS += "bison-native \
|
|
flex-native \
|
|
zip-native \
|
|
flex \
|
|
elfutils \
|
|
clang \
|
|
libbpf \
|
|
python3-setuptools-native \
|
|
"
|
|
|
|
RDEPENDS:${PN} += "bash python3 python3-core python3-setuptools xz"
|
|
RDEPENDS:${PN}-ptest = "kernel-devsrc packagegroup-core-buildessential cmake bash python3 python3-netaddr python3-pyroute2"
|
|
|
|
SRC_URI = "gitsm://github.com/iovisor/bcc;branch=master;protocol=https;tag=v${PV} \
|
|
file://0001-CMakeLists.txt-override-the-PY_CMD_ESCAPED.patch \
|
|
file://0001-Vendor-just-enough-extra-headers-to-allow-libbpf-to-.patch \
|
|
file://0001-Fix-a-build-failure-with-clang21-5369.patch \
|
|
file://0001-Add-ARM64-syscall-prefix-detection-in-C-API.patch \
|
|
file://0002-Add-riscv-syscall-prefix-detection-in-C-API.patch \
|
|
file://0003-folly-tracing-Remove-x86-specific-naming-from-tracin.patch \
|
|
file://0004-folly-tracing-Add-ARM-and-AArch64-support-to-static-.patch \
|
|
file://run-ptest \
|
|
file://ptest_wrapper.sh \
|
|
file://fix_for_memleak.patch \
|
|
"
|
|
|
|
SRCREV = "c31a1ca305f787ba53e001ead45ebf65233a32cf"
|
|
|
|
PACKAGECONFIG ??= "examples"
|
|
PACKAGECONFIG:remove:libc-musl = "examples"
|
|
|
|
PACKAGECONFIG[manpages] = "-DENABLE_MAN=ON,-DENABLE_MAN=OFF,"
|
|
PACKAGECONFIG[examples] = "-DENABLE_EXAMPLES=ON,-DENABLE_EXAMPLES=OFF,"
|
|
|
|
EXTRA_OECMAKE = " \
|
|
-DREVISION='${PV}' \
|
|
-DCMAKE_USE_LIBBPF_PACKAGE=ON \
|
|
-DENABLE_LLVM_SHARED=ON \
|
|
-DENABLE_CLANG_JIT=ON \
|
|
-DPY_SKIP_DEB_LAYOUT=ON \
|
|
-DPYTHON_CMD=${PYTHON} \
|
|
-DPYTHON_FLAGS=--install-lib=${PYTHON_SITEPACKAGES_DIR} \
|
|
"
|
|
|
|
# Avoid stripping debuginfo.so to fix some tests.
|
|
INHIBIT_PACKAGE_STRIP = "1"
|
|
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
|
|
|
do_install:append() {
|
|
sed -e 's@#!/usr/bin/env python@#!/usr/bin/env python3@g' \
|
|
-i $(find ${D}${datadir}/${PN} -type f)
|
|
sed -e 's@#!/usr/bin/python.*@#!/usr/bin/env python3@g' \
|
|
-i $(find ${D}${datadir}/${PN} -type f)
|
|
rm -rf ${D}${datadir}/bcc/examples/lua
|
|
}
|
|
|
|
do_install_ptest() {
|
|
install -d ${D}${PTEST_PATH}/tests/cc
|
|
# ptest searches for shared libs and archive files in the build folder.
|
|
# Hence, these files are copied to the image to fix these tests.
|
|
install -d ${D}${B}/tests/cc
|
|
install ${B}/tests/cc/archive.zip ${B}/tests/cc/libdebuginfo_test_lib.so ${B}/tests/cc/with_gnu_debuglink.so ${B}/tests/cc/with_gnu_debugdata.so ${B}/tests/cc/debuginfo.so ${D}${B}/tests/cc
|
|
install -d ${D}/opt
|
|
install ${B}/tests/cc/test_libbcc_no_libbpf ${B}/tests/cc/libusdt_test_lib.so ${D}${PTEST_PATH}/tests/cc
|
|
cp -rf ${S}/tests/python ${D}${PTEST_PATH}/tests/python
|
|
install ${UNPACKDIR}/ptest_wrapper.sh ${D}${PTEST_PATH}/tests
|
|
install ${S}/examples/networking/simulation.py ${D}${PTEST_PATH}/tests/python
|
|
find ${S}/tools/ -type f -name "*.py" -exec \
|
|
sed -i \
|
|
-e 's@^#! */usr/bin/env python$@#!/usr/bin/env python3@' \
|
|
-e 's@^#! */usr/bin/python.*@#!/usr/bin/env python3@' {} +
|
|
cp -rf ${S}/tools/ ${D}${PTEST_PATH}/../../tools/
|
|
}
|
|
|
|
FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
|
|
FILES:${PN} += "${B}/tests/cc"
|
|
FILES:${PN}-ptest += "${libdir}/libbcc.so"
|
|
FILES:${PN}-ptest += "${libdir}/tools/"
|
|
FILES:${PN}-ptest += "/opt/"
|
|
FILES:${PN}-doc += "${datadir}/${PN}/man"
|
|
|
|
COMPATIBLE_HOST = "(x86_64.*|aarch64.*|powerpc64.*|riscv64.*)-linux"
|
|
|
|
# WARNING: bcc-0.30.0+git-r0 do_package_qa: QA Issue: File /usr/lib/bcc/ptest/tests/cc/test_libbcc_no_libbpf in package bcc-ptest contains reference to TMPDIR [buildpaths]
|
|
# this one is difficult to resolve, because the tests use CMAKE_CURRENT_BINARY_DIR directly in .cc e.g.:
|
|
# https://github.com/iovisor/bcc/commit/7271bfc946a19413761be2e3c60c48bf72c5eea1#diff-233a0bfa490f3d7466c49935b64c86dd93956bbc0461f5af703b344cf6601461
|
|
# we would probably need to use separate variable for "runtime" path for test assets from the standard CMAKE_CURRENT_BINARY_DIR variable or use relative
|
|
# path from the test binary
|
|
WARN_QA:append = "${@bb.utils.contains('PTEST_ENABLED', '1', ' buildpaths', '', d)}"
|
|
ERROR_QA:remove = "${@bb.utils.contains('PTEST_ENABLED', '1', 'buildpaths', '', d)}"
|