[oe-commits] [meta-openembedded] 15/15: bpftrace: Add build recipe

git at git.openembedded.org git at git.openembedded.org
Tue Feb 18 06:27:30 UTC 2020


This is an automated email from the git hooks/post-receive script.

khem pushed a commit to branch master-next
in repository meta-openembedded.

commit 988db92a2d347ec2173e0c8cb6fded338e14dd5d
Author: Sumit Garg <sumit.garg at linaro.org>
AuthorDate: Tue Feb 18 13:25:44 2020 +0800

    bpftrace: Add build recipe
    
    bpftrace is a high-level tracing language for eBPF, its language is
    inspired by awk and C, and predecessor tracers such as DTrace and
    SystemTap.  bpftrace was created by Alastair Robertson.  bpftrace
    language supports the usages for one-liner and script, it's very
    powerful for tracing and profiling.  bpftrace internal mechanism
    depends on BCC and LLVM/Clang, so the building dependency has contains
    these modules.
    
    Add recipe for bpftrace version 0.9.4.  This patch also contains a
    patch to change cmake file so can look for libraries and headers which
    are installed in target sysroot-recipe path for cross compilation.
    
    Signed-off-by: Sumit Garg <sumit.garg at linaro.org>
    Co-developed-by: Leo Yan <leo.yan at linaro.org>
    Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
 ...ild-with-OE-llvm-clang-cross-compiled-pac.patch | 65 ++++++++++++++++++++++
 .../recipes-devtools/bpftrace/bpftrace_0.9.4.bb    | 34 +++++++++++
 2 files changed, 99 insertions(+)

diff --git a/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch b/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch
new file mode 100644
index 0000000..d6cb322
--- /dev/null
+++ b/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch
@@ -0,0 +1,65 @@
+From cdfd9284c7e83b1bd18c94c0f39c020f31759178 Mon Sep 17 00:00:00 2001
+From: Sumit Garg <sumit.garg at linaro.org>
+Date: Mon, 17 Feb 2020 09:45:38 +0000
+Subject: [PATCH] Allow to build with OE llvm & clang cross compiled packages
+
+The default llvm and clang cmake packages requires all libraries, headers
+and tools to be present but in case of cross compilation, OE only
+provides target specific libraries and headers and requires native llvm
+or clang tools.
+
+So instead of looking for a complete llvm & clang packages, look for
+libraries and headers which are installed in target sysroot-recipe path.
+
+Also, fix name for clang library lookup.
+
+Signed-off-by: Sumit Garg <sumit.garg at linaro.org>
+---
+ CMakeLists.txt         | 6 +++---
+ src/ast/CMakeLists.txt | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b766669..e4de1e3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,7 +14,7 @@ set(STATIC_LIBC OFF CACHE BOOL "Attempt to embed libc, only known to work with m
+ set(EMBED_LLVM OFF CACHE BOOL "Build LLVM static libs as an ExternalProject and link to these instead of system libs.")
+ set(EMBED_CLANG OFF CACHE BOOL "Build Clang static libs as an ExternalProject and link to these instead of system libs.")
+ set(EMBED_LIBCLANG_ONLY OFF CACHE BOOL "Build only libclang.a, and link to system libraries statically")
+-set(LLVM_VERSION "8" CACHE STRING "Embedded LLVM/Clang version to build and link against.")
++set(LLVM_VERSION "9" CACHE STRING "Embedded LLVM/Clang version to build and link against.")
+ set(BUILD_ASAN OFF CACHE BOOL "Build bpftrace with -fsanitize=address")
+
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+@@ -122,7 +122,7 @@ check_include_file("sys/sdt.h" HAVE_SYSTEMTAP_SYS_SDT_H)
+
+ if (EMBED_LLVM)
+   include(embed_llvm)
+-else()
++elseif(0)
+   # Some users have multiple versions of llvm installed and would like to specify
+   # a specific llvm version.
+   if(${LLVM_REQUESTED_VERSION})
+@@ -142,7 +142,7 @@ endif()
+
+ if(EMBED_CLANG)
+   include(embed_clang)
+-else()
++elseif(0)
+   find_package(Clang REQUIRED)
+   include_directories(SYSTEM ${CLANG_INCLUDE_DIRS})
+ endif()
+diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt
+index f280f47..f8b9dff 100644
+--- a/src/ast/CMakeLists.txt
++++ b/src/ast/CMakeLists.txt
+@@ -57,5 +57,5 @@ else()
+     llvm_expand_dependencies(llvm_libs ${_llvm_libs})
+     target_link_libraries(ast ${llvm_libs})
+   endif()
+-  target_link_libraries(ast libclang)
++  target_link_libraries(ast clang)
+ endif()
+--
+2.17.1
diff --git a/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb b/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb
new file mode 100644
index 0000000..32a8b0b
--- /dev/null
+++ b/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb
@@ -0,0 +1,34 @@
+SUMMARY = "bpftrace"
+HOMEPAGE = "https://github.com/iovisor/bpftrace"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS += "bison-native \
+            ninja-native \
+            elfutils-native \
+            flex-native \
+            gtest-native \
+            git-native \
+            ${MLPREFIX}elfutils \
+            ${MLPREFIX}binutils \
+            ${MLPREFIX}flex \
+            clang \
+            bcc \
+            "
+
+RDEPENDS_${PN} += "bash python3"
+
+SRC_URI = "git://github.com/iovisor/bpftrace \
+           file://0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch \
+           "
+SRCREV = "85f9eea624c83443816e37654d0c1c93366a2e66"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_BUILD_TYPE=Release \
+"

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list