master
cmake 46 lines 1.65 KB
Raw
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # Handling for eBPF legacy programs
3
4 include(ExternalProject)
5 include(NetdataUtil)
6
7 set(ebpf-legacy_SOURCE_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy")
8 set(ebpf-legacy_BUILD_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy-build")
9
10 # Fetch the legacy eBPF code.
11 function(netdata_fetch_legacy_ebpf_code)
12 netdata_identify_libc(_libc)
13
14 if(DEFINED BUILD_SHARED_LIBS)
15 if(NOT BUILD_SHARED_LIBS)
16 set(need_static TRUE)
17 endif()
18 endif()
19
20 if(need_static)
21 set(_hash 995dba7386d73069eedc31106c7d5408e5b8e2f7448e636d79483fc0ccba8e3a)
22 set(_libc "static")
23 elseif(_libc STREQUAL "glibc")
24 set(_hash f350006dab68bcd306ac26df19a53146adf975c0326e19dc89058656cf97e8a6)
25 elseif(_libc STREQUAL "musl")
26 set(_hash 6a572969c7afe6cac565c3bd46a37d8ec2139c1113666994c2e0af864d828bd7)
27 else()
28 message(FATAL_ERROR "Could not determine libc implementation, unable to install eBPF legacy code.")
29 endif()
30
31 ExternalProject_Add(
32 ebpf-code-legacy
33 URL https://github.com/netdata/kernel-collector/releases/download/v1.7.0.1/netdata-kernel-collector-${_libc}-v1.7.0.1.tar.xz
34 URL_HASH SHA256=${_hash}
35 SOURCE_DIR "${ebpf-legacy_SOURCE_DIR}"
36 CONFIGURE_COMMAND ""
37 BUILD_COMMAND sh -c "mkdir -p ${ebpf-legacy_BUILD_DIR}/ebpf.d && mv ${ebpf-legacy_SOURCE_DIR}/*netdata_ebpf_*.o ${ebpf-legacy_BUILD_DIR}/ebpf.d"
38 INSTALL_COMMAND ""
39 )
40 endfunction()
41
42 function(netdata_install_legacy_ebpf_code)
43 install(DIRECTORY ${ebpf-legacy_BUILD_DIR}/ebpf.d
44 DESTINATION usr/libexec/netdata/plugins.d
45 COMPONENT ebpf-code-legacy)
46 endfunction()