bpftool: Strip all -Wformat* flags from bootstrap libbpf build
Andrii Nakryiko
maintainerPATCH 1/1 bpftool: Strip all -Wformat* flags from bootstrap libbpf build
Commit 9080b97689db ("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf with HOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
HOST_CFLAGS inherits EXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children in LIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:
cc1: warning: '-Wformat-y2k' ignored without '-Wformat'
cc1: warning: '-Wformat-security' ignored without '-Wformat'
The warning is easy to miss in an in-tree build: tools/lib/bpf/Makefile re-adds -Wall via "override CFLAGS += -Wall", which re-enables -Wformat for the libbpf objects, so only libbpf's feature-detection probe (which uses the passed CFLAGS verbatim) leaks the two warnings. The standalone libbpf Makefile (github.com/libbpf/libbpf, used by the bpftool mirror) instead uses "CFLAGS ?= ... -Wall", which the passed-in CFLAGS overrides, so -Wall is never re-added and every bootstrap object warns.
Use a -Wformat% wildcard in the filter-out so the orphaned children are removed together with the parent.
--- tools/bpf/bpftool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/bpf/bpftool/Makefile +1 -1
@@ -99,7 +99,7 @@ endif HOST_LDFLAGS := $(LDFLAGS) # Remove warnings for libbpf bootstrap build -LIBBPF_BOOTSTRAP_CFLAGS := $(filter-out -W -Wall -Wextra -Wformat -Wformat-signedness,$(HOST_CFLAGS)) +LIBBPF_BOOTSTRAP_CFLAGS := $(filter-out -W -Wall -Wextra -Wformat%,$(HOST_CFLAGS)) INSTALL ?= install RM ?= rm -f
Signature · 1 line
2.53.0-Meta
2026-06-30 13:54 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 22 lines
Commit
9080b97689db("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf withHOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
HOST_CFLAGSinheritsEXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children inLIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:cc1: warning: '-Wformat-y2k' ignored without '-Wformat'
cc1: warning: '-Wformat-security' ignored without '-Wformat'The warning is easy to miss in an in-tree build:
tools/lib/bpf/Makefilere-adds -Wall via "override CFLAGS += -Wall", which re-enables -Wformat for the libbpf objects, so only libbpf's feature-detection probe (which uses the passed CFLAGS verbatim) leaks the two warnings. The standalone libbpfMakefile(github.com/libbpf/libbpf, used by the bpftool mirror) instead uses "CFLAGS ?= ... -Wall", which the passed-in CFLAGS overrides, so -Wall is never re-added and every bootstrap object warns.
Quoted 5 lines
Use a -Wformat% wildcard in the filter-out so the orphaned children are removed together with the parent.
Fixes 9080b97689db ("bpftool: Pass host flags to bootstrap libbpf")Signed-off-by Andrii Nakryiko <[email protected]>
Looks good, thank you.
Andrii Nakryiko
AppliedQuoted 27 lines · Quentin Monnet
2026-06-30 13:54 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 25 lines
Commit
9080b97689db("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf withHOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
HOST_CFLAGSinheritsEXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children inLIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:cc1: warning: '-Wformat-y2k' ignored without '-Wformat'
cc1: warning: '-Wformat-security' ignored without '-Wformat'The warning is easy to miss in an in-tree build:
tools/lib/bpf/Makefilere-adds -Wall via "override CFLAGS += -Wall", which re-enables -Wformat for the libbpf objects, so only libbpf's feature-detection probe (which uses the passed CFLAGS verbatim) leaks the two warnings. The standalone libbpfMakefile(github.com/libbpf/libbpf, used by the bpftool mirror) instead uses "CFLAGS ?= ... -Wall", which the passed-in CFLAGS overrides, so -Wall is never re-added and every bootstrap object warns.Use a -Wformat% wildcard in the filter-out so the orphaned children are removed together with the parent.
Quoted 7 lines
Quoted 2 lines
Fixes 9080b97689db ("bpftool: Pass host flags to bootstrap libbpf")Signed-off-by Andrii Nakryiko <[email protected]>Looks good, thank you.
Acked-by Quentin Monnet <[email protected]>
thanks, applied to bpf-next, please do another bpftool sync when you get a chance
Quentin Monnet
maintainer2026-07-01 11:15 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 32 lines · Quentin Monnet
Quoted 31 lines
2026-06-30 13:54 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 27 lines
Commit
9080b97689db("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf withHOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
HOST_CFLAGSinheritsEXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children inLIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:cc1: warning: '-Wformat-y2k' ignored without '-Wformat'
cc1: warning: '-Wformat-security' ignored without '-Wformat'The warning is easy to miss in an in-tree build:
tools/lib/bpf/Makefilere-adds -Wall via "override CFLAGS += -Wall", which re-enables -Wformat for the libbpf objects, so only libbpf's feature-detection probe (which uses the passed CFLAGS verbatim) leaks the two warnings. The standalone libbpfMakefile(github.com/libbpf/libbpf, used by the bpftool mirror) instead uses "CFLAGS ?= ... -Wall", which the passed-in CFLAGS overrides, so -Wall is never re-added and every bootstrap object warns.Use a -Wformat% wildcard in the filter-out so the orphaned children are removed together with the parent.
Fixes 9080b97689db ("bpftool: Pass host flags to bootstrap libbpf")Signed-off-by Andrii Nakryiko <[email protected]>
Quoted 6 lines
Quoted 3 lines
Looks good, thank you.
Acked-by Quentin Monnet <[email protected]>thanks, applied to bpf-next, please do another bpftool sync when you get a chance
Done now, it should be all sorted in the GitHub mirror. Thanks!
Quentin
Quoted 36 lines · Quentin Monnet
2026-07-01 11:15 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 34 lines · Quentin Monnet
Quoted 33 lines
2026-06-30 13:54 UTC-0700 ~ Andrii Nakryiko <[email protected]>
Quoted 22 lines
Commit
9080b97689db("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf withHOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
HOST_CFLAGSinheritsEXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children inLIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:cc1: warning: '-Wformat-y2k' ignored without '-Wformat'
cc1: warning: '-Wformat-security' ignored without '-Wformat'The warning is easy to miss in an in-tree build:
tools/lib/bpf/Makefilere-adds -Wall via "override CFLAGS += -Wall", which re-enables -Wformat for the libbpf objects, so only libbpf's feature-detection probe (which uses the passed CFLAGS verbatim) leaks the two warnings. The standalone libbpfMakefile(github.com/libbpf/libbpf, used by the bpftool mirror) instead uses "CFLAGS ?= ... -Wall", which the passed-in CFLAGS overrides, so -Wall is never re-added and every bootstrap object warns.Quoted 5 lines
Use a -Wformat% wildcard in the filter-out so the orphaned children are removed together with the parent.
Fixes 9080b97689db ("bpftool: Pass host flags to bootstrap libbpf")Signed-off-by Andrii Nakryiko <[email protected]>Looks good, thank you.
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Acked-by Quentin Monnet <[email protected]>thanks, applied to bpf-next, please do another bpftool sync when you get a chance
Done now, it should be all sorted in the GitHub mirror. Thanks!
Nice, finally warning-free wprof build :) Thanks!
Quoted 1 line
Quentin
This patch was applied to bpf/bpf-next.git (master) by Andrii Nakryiko <[email protected]>:
Hello:
This patch was applied to bpf/bpf-next.git (master) by Andrii Nakryiko <[email protected]>:
Quoted 5 lines · On Tue, 30 Jun 2026 13:54:18 -0700 you wrote:
Commit
9080b97689db("bpftool: Pass host flags to bootstrap libbpf") started building the bootstrap libbpf withHOST_CFLAGS, stripping the warning options that are unsuitable for that build by filtering out -W -Wall -Wextra -Wformat -Wformat-signedness.
Quoted 7 lines
HOST_CFLAGSinheritsEXTRA_WARNINGS, which includes -Wformat-security and -Wformat-y2k. The filter drops -Wall and -Wformat (the latter being what actually enables -Wformat), but leaves those two -Wformat-* children inLIBBPF_BOOTSTRAP_CFLAGS. Building the bootstrap libbpf with it then warns:[...]
Here is the summary with links:
- [bpf-next] bpftool: Strip all -Wformat* flags from bootstrap libbpf build
https://git.kernel.org/bpf/bpf-next/c/a954c9e3168c
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html