Building from source under CentOS the user may stumble on some compilation errors and most of them are for missing -devel packages. Here is such example with not so easy to find the name of a missing library:
[/tmp/netdata-libbpf-El77Ld/libbpf-0.0.9_netdata-1/src]# env CFLAGS=-fPIC CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. make install Package libelf was not found in the pkg-config search path. Perhaps you should add the directory containing `libelf.pc' to the PKG_CONFIG_PATH environment variable No package 'libelf' found mkdir -p build/staticobjs cc -I. -I../include -I../include/uapi -DCOMPAT_NEED_REALLOCARRAY -fPIC -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c bpf.c -o build/staticobjs/bpf.o cc -I. -I../include -I../include/uapi -DCOMPAT_NEED_REALLOCARRAY -fPIC -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c btf.c -o build/staticobjs/btf.o btf.c:17:18: fatal error: gelf.h: No such file or directory #include <gelf.h> ^ compilation terminated. make: *** [build/staticobjs/btf.o] Error 1 FAILED
The missing development library file is with the name: elfutils-libelf-devel. Installing the package with yum or dnf will resolve the above error:
yum install -y elfutils-libelf-devel
Or for CentOS 8 and newer Fedora versions:
dnf install -y elfutils-libelf-devel