So, while testing this I noticed that if I _don't_ have libbpf-devel/libbpf installed and ask for it _not_ to use the embedded libbpf, it will build just file, using the embedded libbpf, shouldn't it flatly fail in this case instead of just making this note: -- Checking for module 'libbpf>=0.3.0' -- Package 'libbpf', required by 'virtual:world', not found ? - Arnaldo ⬢[acme@toolbox pahole]$ sudo rpm -e libbpf-devel ⬢[acme@toolbox pahole]$ sudo rpm -e libbpf ⬢[acme@toolbox pahole]$ rm -rf build ; mkdir build ; cd build ; cmake -D__LIB=lib -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=Off .. ; cd .. -- The C compiler identification is GNU 11.1.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Found PkgConfig: /usr/bin/pkg-config (found version "1.7.3") -- Checking for module 'libbpf>=0.3.0' -- Package 'libbpf', required by 'virtual:world', not found -- Setting BUILD_SHARED_LIBS = ON -- Checking availability of DWARF and ELF development libraries -- Looking for dwfl_module_build_id in elf -- Looking for dwfl_module_build_id in elf - found -- Found dwarf.h header: /usr/include -- Found elfutils/libdw.h header: /usr/include -- Found libdw library: /usr/lib64/libdw.so -- Found libelf library: /usr/lib64/libelf.so -- Checking availability of DWARF and ELF development libraries - done -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11") -- Submodule update -- Submodule update - done -- Performing Test HAVE_REALLOCARRAY_SUPPORT -- Performing Test HAVE_REALLOCARRAY_SUPPORT - Success -- Configuring done -- Generating done -- Build files have been written to: /var/home/acme/git/pahole/build ⬢[acme@toolbox pahole]$ make -C build make: Entering directory '/var/home/acme/git/pahole/build' make[1]: Entering directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target bpf make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 1%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/bpf.c.o [ 3%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/bpf_prog_linfo.c.o [ 5%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/btf.c.o [ 7%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/btf_dump.c.o [ 9%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/hashmap.c.o [ 11%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf.c.o [ 13%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf_errno.c.o [ 15%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf_probes.c.o [ 17%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/netlink.c.o [ 19%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/nlattr.c.o [ 21%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/ringbuf.c.o [ 23%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/str_error.c.o [ 25%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/xsk.c.o make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 25%] Built target bpf make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target dwarves make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 26%] Building C object CMakeFiles/dwarves.dir/dwarves.c.o [ 28%] Building C object CMakeFiles/dwarves.dir/dwarves_fprintf.c.o [ 30%] Building C object CMakeFiles/dwarves.dir/gobuffer.c.o [ 32%] Building C object CMakeFiles/dwarves.dir/strings.c.o [ 34%] Building C object CMakeFiles/dwarves.dir/ctf_encoder.c.o [ 36%] Building C object CMakeFiles/dwarves.dir/ctf_loader.c.o [ 38%] Building C object CMakeFiles/dwarves.dir/libctf.c.o [ 40%] Building C object CMakeFiles/dwarves.dir/btf_encoder.c.o [ 42%] Building C object CMakeFiles/dwarves.dir/btf_loader.c.o [ 44%] Building C object CMakeFiles/dwarves.dir/dwarf_loader.c.o [ 46%] Building C object CMakeFiles/dwarves.dir/dutil.c.o [ 48%] Building C object CMakeFiles/dwarves.dir/elf_symtab.c.o [ 50%] Building C object CMakeFiles/dwarves.dir/rbtree.c.o [ 51%] Linking C shared library libdwarves.so make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 51%] Built target dwarves make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target syscse make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 53%] Building C object CMakeFiles/syscse.dir/syscse.c.o [ 55%] Linking C executable syscse make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 55%] Built target syscse make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target codiff make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 57%] Building C object CMakeFiles/codiff.dir/codiff.c.o [ 59%] Linking C executable codiff make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 59%] Built target codiff make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target dtagnames make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 61%] Building C object CMakeFiles/dtagnames.dir/dtagnames.c.o [ 63%] Linking C executable dtagnames make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 63%] Built target dtagnames make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target scncopy make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 65%] Building C object CMakeFiles/scncopy.dir/scncopy.c.o [ 67%] Building C object CMakeFiles/scncopy.dir/elfcreator.c.o [ 69%] Linking C executable scncopy make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 69%] Built target scncopy make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target dwarves_emit make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 71%] Building C object CMakeFiles/dwarves_emit.dir/dwarves_emit.c.o [ 73%] Linking C shared library libdwarves_emit.so make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 73%] Built target dwarves_emit make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target dwarves_reorganize make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 75%] Building C object CMakeFiles/dwarves_reorganize.dir/dwarves_reorganize.c.o [ 76%] Linking C shared library libdwarves_reorganize.so make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 76%] Built target dwarves_reorganize make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target ctracer make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 78%] Building C object CMakeFiles/ctracer.dir/ctracer.c.o [ 80%] Linking C executable ctracer make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 80%] Built target ctracer make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target pdwtags make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 82%] Building C object CMakeFiles/pdwtags.dir/pdwtags.c.o [ 84%] Linking C executable pdwtags make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 84%] Built target pdwtags make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target pahole make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 86%] Building C object CMakeFiles/pahole.dir/pahole.c.o [ 88%] Linking C executable pahole make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 88%] Built target pahole make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target pfunct make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 90%] Building C object CMakeFiles/pfunct.dir/pfunct.c.o [ 92%] Linking C executable pfunct make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 92%] Built target pfunct make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target pglobal make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 94%] Building C object CMakeFiles/pglobal.dir/pglobal.c.o [ 96%] Linking C executable pglobal make[2]: Leaving directory '/var/home/acme/git/pahole/build' [ 96%] Built target pglobal make[2]: Entering directory '/var/home/acme/git/pahole/build' Scanning dependencies of target prefcnt make[2]: Leaving directory '/var/home/acme/git/pahole/build' make[2]: Entering directory '/var/home/acme/git/pahole/build' [ 98%] Building C object CMakeFiles/prefcnt.dir/prefcnt.c.o [100%] Linking C executable prefcnt make[2]: Leaving directory '/var/home/acme/git/pahole/build' [100%] Built target prefcnt make[1]: Leaving directory '/var/home/acme/git/pahole/build' make: Leaving directory '/var/home/acme/git/pahole/build' ⬢[acme@toolbox pahole]$