Re: [PATCH] perf build: build BPF skeletons with fPIC
From: Arnaldo Carvalho de Melo
Date: Wed Dec 03 2025 - 11:43:21 EST
On Tue, Dec 02, 2025 at 08:55:26PM -0700, Jon Kohler wrote:
> 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")
How come, this patch is just:
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 9c1a69d26f5121fd..531f8fc4f7df9943 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -83,7 +83,6 @@ FEATURE_TESTS_BASIC := \
libpython \
libslang \
libtraceevent \
- libtracefs \
libcpupower \
pthread-attr-setaffinity-np \
pthread-barrier \
diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
index e1847db6f8e63750..2df593593b6ec15e 100644
--- a/tools/build/feature/test-all.c
+++ b/tools/build/feature/test-all.c
@@ -150,10 +150,6 @@
# include "test-libtraceevent.c"
#undef main
-#define main main_test_libtracefs
-# include "test-libtracefs.c"
-#undef main
-
int main(int argc, char *argv[])
{
main_test_libpython();
@@ -187,7 +183,6 @@ int main(int argc, char *argv[])
main_test_reallocarray();
main_test_libzstd();
main_test_libtraceevent();
- main_test_libtracefs();
return 0;
}
----
And your patch is touching building bpftool? Seems very unrelated :-\
- Arnaldo
> 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