README

June 25, 2025 ยท View on GitHub

Build instructions:

  1. install cmake
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make install

cmake Options: -DBUILD_SHARED_LIBS By default SHARED libraries are created and applications are linked to it. Use -DBUILD_SHARED_LIBS=OFF while invoking cmake to create STATIC libraries and link applications to it.

Ex. cmake -DBUILD_SHARED_LIBS=OFF ..

-DCMAKE_INSTALL_PREFIX Default is to install to /usr/local, use -DCMAKE_INSTALL_PREFIX= when invoking cmake to specify another install location.

-DCMAKE_INSTALL_LIBDIR Default is to install to lib or lib64, use -DCMAKE_INSTALL_LIBDIR= when invoking cmake to specify another install location.

You may need to update the libbpf git submodule:

git submodule update --init --recursive

Testing:

Tests are available in the tests subdirectory and should be run prior to submitting patches. Patches that add functionality should add to tests here also. Tests can be run by

  • running the scripts directly using a pre-existing vmlinux binary; i.e. cd tests ; vmlinux=/path/2/vmlinux ./tests (the vmlinux binary must contain DWARF to be converted to BTF)

  • running the tests via local scripts in .github/scripts; i.e. bash .github/scripts/build-pahole.sh;
    bash .github/scripts/build-kernel.sh;
    bash .github/scripts/run-selftests.sh

  • via GitHub actions: push a branch to a GitHub repo; actions will be triggered for build and test matching the above steps. See the "Actions" tab in the github repo for info on job pass/fail and logs.