> diff --git a/tools/testing/selftests/lib.bpf.mk > b/tools/testing/selftests/lib.bpf.mk > new file mode 100644 > index 000000000000..6f175c6568e9 > --- /dev/null > +++ b/tools/testing/selftests/lib.bpf.mk
[ ... ] > +# ---- libbpf (target) ------------------------------------------------------ > +# Pass ARCH/CROSS_COMPILE/CC through: lib.mk's CC is file-origin and is not > +# exported, so without this the libbpf sub-make would rebuild for the host > under > +# a pure-LLVM cross build (make LLVM=1 ARCH=<arch>). -fPIC keeps the static > +# libbpf linkable into position-independent (PIE) test binaries. > +$(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \ > + $(APIDIR)/linux/bpf.h | $(BUILD_DIR)/libbpf > + $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \ > + ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) CC="$(CC)" \ > + EXTRA_CFLAGS='-g -O0 -fPIC' \ > + DESTDIR=$(SCRATCH_DIR) prefix= all install_headers This rule hardcodes EXTRA_CFLAGS='-g -O0 -fPIC' for the libbpf sub-make. tools/testing/selftests/bpf/Makefile instead passes EXTRA_CFLAGS='-g $(OPT_FLAGS) $(SAN_CFLAGS) $(EXTRA_CFLAGS)'. With -O0 pinned here, is there a way for someone to build the selftests (including libbpf) with -O2, or with sanitizer flags? Could this at least honor the EXTRA_CFLAGS or USERCFLAGS that lib.mk already defines? The same hardcoding shows up in the host libbpf and host bpftool rules below, so the same question applies to them: > +# ---- libbpf (host) -- a distinct rule only when cross-compiling ----------- > +ifneq ($(BPFOBJ),$(HOST_BPFOBJ)) > +$(HOST_BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \ > + | $(HOST_BUILD_DIR)/libbpf > + $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) ARCH= CROSS_COMPILE= \ > + OUTPUT=$(HOST_BUILD_DIR)/libbpf/ CC=$(HOSTCC) LD=$(HOSTLD) \ > + EXTRA_CFLAGS='-g -O0' \ > + DESTDIR=$(HOST_SCRATCH_DIR) prefix= all install_headers > +endif > + > +# ---- bpftool (host) ------------------------------------------------------- > +$(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \ > + $(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool > + $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \ > + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \ > + EXTRA_CFLAGS='-g -O0' \ > + OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \ > + LIBBPF_OUTPUT=$(HOST_BUILD_DIR)/libbpf/ \ > + LIBBPF_DESTDIR=$(HOST_SCRATCH_DIR)/ \ > + prefix= DESTDIR=$(HOST_SCRATCH_DIR)/ install-bin [ ... ] On the commit message: > This saves much work for configuring selftests in other folder, such the > cgroup. This isn't a bug, but could this sentence be tightened? "in other folder" and "such the cgroup" read a little awkwardly, and the preceding text already explains the deduplication rationale. Perhaps something like "This eases adding BPF-based selftests in other directories, such as cgroup." --- AI reviewed your patch. Please fix the bug or email reply why it's not a bug. See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md CI run summary: https://github.com/kernel-patches/bpf/actions/runs/29908293077

