From 3e84239ff64ececa6bd54bbddbc9e3d22542dfa9 Mon Sep 17 00:00:00 2001 From: Vladimir Kobal Date: Thu, 16 Jul 2020 15:10:35 +0300 Subject: Use the libbpf library for the eBPF plugin (#9490) --- CMakeLists.txt | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 30e222603a..427027e19f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,6 +299,30 @@ find_package(libmongoc-1.0) # ${MONGOC_INCLUDE_DIRS} +# ----------------------------------------------------------------------------- +# Detect libbpf +IF(LINUX AND EXISTS "${CMAKE_SOURCE_DIR}/externaldeps/libbpf/libbpf.a") + message(STATUS "libbpf library found") + pkg_check_modules(ELF REQUIRED libelf) + # later we use: + # ${ELF_LIBRARIES} + # ${ELF_CFLAGS_OTHER} + # ${ELF_INCLUDE_DIRS} + IF(ELF_LIBRARIES) + list(APPEND NETDATA_COMMON_CFLAGS ${ELF_CFLAGS_OTHER}) + list(INSERT NETDATA_COMMON_LIBRARIES 0 + ${CMAKE_SOURCE_DIR}/externaldeps/libbpf/libbpf.a + ${ELF_LIBRARIES}) + list(APPEND NETDATA_COMMON_INCLUDE_DIRS ${ELF_INCLUDE_DIRS}) + include_directories(BEFORE ${CMAKE_SOURCE_DIR}/externaldeps/libbpf/include) + set(ENABLE_PLUGIN_EBPF True) + ELSE(ELF_LIBRARIES) + set(ENABLE_PLUGIN_EBPF False) + message(STATUS "ebpf plugin: disabled (requires libelf)") + ENDIF(ELF_LIBRARIES) +ENDIF() + + # ----------------------------------------------------------------------------- # netdata files @@ -315,8 +339,6 @@ set(LIBNETDATA_FILES libnetdata/clocks/clocks.h libnetdata/dictionary/dictionary.c libnetdata/dictionary/dictionary.h - libnetdata/ebpf/ebpf.c - libnetdata/ebpf/ebpf.h libnetdata/eval/eval.c libnetdata/eval/eval.h libnetdata/inlined.h @@ -357,6 +379,12 @@ set(LIBNETDATA_FILES libnetdata/circular_buffer/circular_buffer.c libnetdata/circular_buffer/circular_buffer.h) +IF(ENABLE_PLUGIN_EBPF) + list(APPEND LIBNETDATA_FILES + libnetdata/ebpf/ebpf.c + libnetdata/ebpf/ebpf.h) +ENDIF() + add_library(libnetdata OBJECT ${LIBNETDATA_FILES}) set(APPS_PLUGIN_FILES @@ -928,7 +956,6 @@ IF(LINUX) SET(ENABLE_PLUGIN_APPS True) SET(ENABLE_PLUGIN_PERF True) SET(ENABLE_PLUGIN_SLABINFO True) - SET(ENABLE_PLUGIN_EBPF True) ELSEIF(FREEBSD) add_executable(netdata config.h ${NETDATA_FILES} ${FREEBSD_PLUGIN_FILES}) -- cgit v1.2.3