selftests/bpf: Use pkg-config for libelf
authorAkihiko Odaki <akihiko.odaki@daynix.com>
Sat, 25 Nov 2023 08:42:52 +0000 (17:42 +0900)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 29 Nov 2023 06:15:29 +0000 (22:15 -0800)
When linking statically, libraries may require other dependencies to be
included to ld flags. In particular, libelf may require libzstd. Use
pkg-config to determine such dependencies.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231125084253.85025-4-akihiko.odaki@daynix.com
tools/testing/selftests/bpf/Makefile

index 94825ef813d5233777cea9dec6c434204d298936..617ae55c3bb5b5b0fc8bef1e73b42a4b43a528a9 100644 (file)
@@ -29,13 +29,17 @@ SAN_CFLAGS  ?=
 SAN_LDFLAGS    ?= $(SAN_CFLAGS)
 RELEASE                ?=
 OPT_FLAGS      ?= $(if $(RELEASE),-O2,-O0)
+
+LIBELF_CFLAGS  := $(shell $(PKG_CONFIG) libelf --cflags 2>/dev/null)
+LIBELF_LIBS    := $(shell $(PKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf)
+
 CFLAGS += -g $(OPT_FLAGS) -rdynamic                                    \
          -Wall -Werror                                                 \
-         $(GENFLAGS) $(SAN_CFLAGS)                                     \
+         $(GENFLAGS) $(SAN_CFLAGS) $(LIBELF_CFLAGS)                    \
          -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR)          \
          -I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT)
 LDFLAGS += $(SAN_LDFLAGS)
-LDLIBS += -lelf -lz -lrt -lpthread
+LDLIBS += $(LIBELF_LIBS) -lz -lrt -lpthread
 
 ifneq ($(LLVM),)
 # Silence some warnings when compiled with clang