Re: [PATCH v3 02/30] libbpf: Initialize CFLAGS before including Makefile.include

From: Ian Rogers

Date: Mon Mar 09 2026 - 13:10:21 EST


On Sun, Mar 8, 2026 at 9:46 AM Leo Yan <leo.yan@xxxxxxx> wrote:
>
> Initialize CFLAGS to the default value before including
> tools/scripts/Makefile.include.
>
> Defer appending EXTRA_CFLAGS to CFLAGS until after including
> Makefile.include, as it may extend EXTRA_CFLAGS in the future.
>
> Signed-off-by: Leo Yan <leo.yan@xxxxxxx>
> ---
> tools/lib/bpf/Makefile | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> index 168140f8e6461bd06db40e23d21a3fb8847ccbf4..76cc802375f67b9d8f589904bd9764040947e5dd 100644
> --- a/tools/lib/bpf/Makefile
> +++ b/tools/lib/bpf/Makefile
> @@ -49,6 +49,14 @@ man_dir_SQ = '$(subst ','\'',$(man_dir))'
> export man_dir man_dir_SQ INSTALL
> export DESTDIR DESTDIR_SQ
>
> +# Defer assigning EXTRA_CFLAGS to CFLAGS until after including
> +# tools/scripts/Makefile.include, as it may add flags to EXTRA_CFLAGS.
> +ifdef EXTRA_CFLAGS
> + CFLAGS :=
> +else
> + CFLAGS := -g -O2
> +endif
> +
> include $(srctree)/tools/scripts/Makefile.include
>
> # copy a bit from Linux kbuild
> @@ -70,14 +78,8 @@ LIB_TARGET = libbpf.a libbpf.so.$(LIBBPF_VERSION)
> LIB_FILE = libbpf.a libbpf.so*
> PC_FILE = libbpf.pc
>
> -# Set compile option CFLAGS
> -ifdef EXTRA_CFLAGS
> - CFLAGS := $(EXTRA_CFLAGS)
> -else
> - CFLAGS := -g -O2
> -endif
> -
> # Append required CFLAGS
> +override CFLAGS += $(EXTRA_CFLAGS)
> override CFLAGS += -std=gnu89
> override CFLAGS += $(EXTRA_WARNINGS) -Wno-switch-enum
> override CFLAGS += -Werror -Wall

Not a problem with the change but AI assisted code review noticed
something unusual. Below here is:
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/lib/bpf/Makefile#n87
```
override CFLAGS += $(CLANG_CROSS_FLAGS)
```
and $(srctree)/tools/scripts/Makefile.include has when CROSS_COMPILE is set:
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/scripts/Makefile.include#n116
```
CFLAGS += $(CLANG_CROSS_FLAGS)
```
so it looks like the CFLAGS is duplicating $(CLANG_CROSS_FLAGS).

Thanks,
Ian

> --
> 2.34.1
>