[PATCH] perf build: build BPF skeletons with fPIC
From: Jon Kohler
Date: Tue Dec 02 2025 - 22:13:43 EST
Fix Makefile.perf to ensure that bpf skeletons are built with fPIC.
When building with BUILD_BPF_SKEL=1, bpf_skel's was not getting built
with fPIC, seeing compilation failures like:
/usr/bin/ld: /builddir/.../tools/perf/util/bpf_skel/.tmp/bootstrap/main.o:
relocation R_X86_64_32 against `.rodata.str1.8' can not be used when
making a PIE object; recompile with -fPIE
Bisected down to 6.18 commit a39516805992 ("tools build: Don't assume
libtracefs-devel is always available").
Fixes: a39516805992 ("tools build: Don't assume libtracefs-devel is always available")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Jon Kohler <jon@xxxxxxxxxxx>
---
tools/perf/Makefile.perf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 02f87c49801f..4557c2e89e88 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -1211,7 +1211,7 @@ endif
$(BPFTOOL): | $(SKEL_TMP_OUT)
$(Q)CFLAGS= $(MAKE) -C ../bpf/bpftool \
- OUTPUT=$(SKEL_TMP_OUT)/ bootstrap
+ EXTRA_CFLAGS="-fPIC" OUTPUT=$(SKEL_TMP_OUT)/ bootstrap
# Paths to search for a kernel to generate vmlinux.h from.
VMLINUX_BTF_ELF_PATHS ?= $(if $(O),$(O)/vmlinux) \
--
2.43.0