NetdataEBPFLegacy.cmake 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # SPDX-License-Identifier: GPL-3.0-or-later
  2. # Handling for eBPF legacy programs
  3. include(ExternalProject)
  4. include(NetdataUtil)
  5. set(ebpf-legacy_SOURCE_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy")
  6. set(ebpf-legacy_BUILD_DIR "${CMAKE_BINARY_DIR}/ebpf-legacy-build")
  7. # Fetch the legacy eBPF code.
  8. function(netdata_fetch_legacy_ebpf_code)
  9. netdata_identify_libc(_libc)
  10. if(DEFINED BUILD_SHARED_LIBS)
  11. if(NOT BUILD_SHARED_LIBS)
  12. set(need_static TRUE)
  13. endif()
  14. endif()
  15. if(need_static)
  16. set(_hash ca0c6186b5c9c4640f8ba13ea375b66882203e8ca831a2e6e5e4e039b37f277a)
  17. set(_libc "static")
  18. elseif(_libc STREQUAL "glibc")
  19. set(_hash d3027685e15fdb6406fd36faf45287d79534d40601d388aca5ab87e90959846d)
  20. elseif(_libc STREQUAL "musl")
  21. set(_hash e2268ca1fa012e87d4d3d588e01b3a2389ad8a4b1c878508f6226ce1dad34acf)
  22. else()
  23. message(FATAL_ERROR "Could not determine libc implementation, unable to install eBPF legacy code.")
  24. endif()
  25. ExternalProject_Add(
  26. ebpf-code-legacy
  27. URL https://github.com/netdata/kernel-collector/releases/download/v1.5.0/netdata-kernel-collector-${_libc}-v1.5.0.tar.xz
  28. URL_HASH SHA256=${_hash}
  29. SOURCE_DIR "${ebpf-legacy_SOURCE_DIR}"
  30. CONFIGURE_COMMAND ""
  31. 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"
  32. INSTALL_COMMAND ""
  33. )
  34. endfunction()
  35. function(netdata_install_legacy_ebpf_code)
  36. install(DIRECTORY ${ebpf-legacy_BUILD_DIR}/ebpf.d
  37. DESTINATION usr/libexec/netdata/plugins.d
  38. COMPONENT ebpf-code-legacy)
  39. endfunction()