123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # Handling for eBPF legacy programs
- #
- # Copyright (c) 2024 Netdata Inc.
- # SPDX-License-Identifier: GPL-3.0-or-later
- include(ExternalProject)
- include(NetdataUtil)
- set(ebpf-legacy_SOURCE_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy")
- set(ebpf-legacy_BUILD_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy-build")
- # Fetch the legacy eBPF code.
- function(netdata_fetch_legacy_ebpf_code)
- netdata_identify_libc(_libc)
- if(DEFINED BUILD_SHARED_LIBS)
- if(NOT BUILD_SHARED_LIBS)
- set(need_static TRUE)
- endif()
- endif()
- if(need_static)
- set(_hash 48cff931e6cbd978fe08d1c601496e269df65deb9b9fc2cc0643d35ea2b122e2)
- set(_libc "static")
- elseif(_libc STREQUAL "glibc")
- set(_hash 9ca3bd038984bba48c87437facf3445153bf455114573b753f90e3f734820e0a)
- elseif(_libc STREQUAL "musl")
- set(_hash eaa716ea1deccd918ee2793f789da9a1cb1aec3ee3f7a0d27e327eeb8530cebd)
- else()
- message(FATAL_ERROR "Could not determine libc implementation, unable to install eBPF legacy code.")
- endif()
- ExternalProject_Add(
- ebpf-code-legacy
- URL https://github.com/netdata/kernel-collector/releases/download/v1.4.1/netdata-kernel-collector-${_libc}-v1.4.1.tar.xz
- URL_HASH SHA256=${_hash}
- SOURCE_DIR "${ebpf-legacy_SOURCE_DIR}"
- CONFIGURE_COMMAND ""
- 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"
- INSTALL_COMMAND ""
- )
- endfunction()
- function(netdata_install_legacy_ebpf_code)
- install(DIRECTORY ${ebpf-legacy_BUILD_DIR}/ebpf.d
- DESTINATION usr/libexec/netdata/plugins.d
- COMPONENT ebpf-code-legacy)
- endfunction()
|