[PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option

Leo Yan
2026-03-18T09:17:17Z

Thank you for reviewing and commenting on v4.

For anyone new to the series, the reason for appending this compiler
option is described in v3 (see "Link to v3" below).

In this version, the BPF related patches have been split out and will be
sent separately (note that I have kept the bpftool patches in this
series, as I have gathered Quentin's Acked-by tags).

The changes are organized into three parts:

Patches 01 – 05: Preparation before adding the new compiler option.
Fix typos, adjust Makefiles to ensure the newly
introduced option does not cause regressions.
Patch 06: Propagate -fzero-init-padding-bits=all to
EXTRA_CFLAGS and HOST_EXTRACFLAGS for the
CC and HOSTCC compilers, respectively.
Patches 07 – 26: Apply EXTRA_CFLAGS and HOST_EXTRACFLAGS in
project Makefiles.

The change has been verified:

Test 1: Cross compiling perf
host: gcc 15.2.0 (x86_64), target: aarch64-linux-gnu-gcc

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LDFLAGS="-static" \
-C tools/perf VF=1 CORESIGHT=1 NO_JEVENTS=1 DEBUG=1

Test 2: Cross compiling selftest bpf and sched_ext
host: gcc 15.2.0 (x86_64), target: aarch64-linux-gnu-gcc

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make -C tools/testing/selftests/ TARGETS="bpf sched_ext" SKIP_TARGETS=""

Test 3: Native compiling selftest bpf and sched_ext
host: gcc 15.2.0 (x86_64)

make -C tools/testing/selftests/ TARGETS="bpf sched_ext" SKIP_TARGETS=""

Signed-off-by: Leo Yan <leo.yan@arm.com>
---
Changes in v5:
- Gathered Acked tags (thanks Daniel, Namhyung, Benjamin!)
- Appended HOST_EXTRACFLAGS after KBUILD_HOSTCFLAGS (Ian)
- Appended CFLAGS for libc-test (Thomas)
- Left out BPF patches and will send out separately (Alexei)
- Rebase on v7.0.0-rc4
- Link to v4: https://lore.kernel.org/r/20260311-tools_build_fix_zero_init-v4-0-9e35bdb99cb3@arm.com

Changes in v4:
- Placed EXTRA_CFLAGS last so it can override the default options (Ian).
- Cached evaluated values to avoid invoking cc-option when each
reference EXTRA_CFLAGS/HOST_EXTRACFLAGS (Ian).
- Dropped useless patches for feature, verification and nolibc
(Gabriele / Ian / Thomas).
- Fixed typos for thermal (Ian).
- Removed duplicate $(CLANG_CROSS_FLAGS) in libbpf (Ian).
- Collected maintainers' reviewed and ACK tags.
- Link to v3: https://lore.kernel.org/r/20260308-tools_build_fix_zero_init-v3-0-6477808123b7@arm.com

---
Leo Yan (26):
tools: lib: thermal: Fix typo
tools/thermal: Fix typo
tools: lib: thermal: Initialize CFLAGS before including Makefile.include
tools/thermal: Initialize CFLAGS before including Makefile.include
bpftool: Avoid adding EXTRA_CFLAGS to HOST_CFLAGS
tools build: Append -fzero-init-padding-bits=all to extra cflags
bpftool: Append extra host flags
perf build: Append extra host flags
tools build: Append extra host cflags
tools: bootconfig: Append extra cflags
tools: counter: Append extra cflags
tools: dma: Append extra cflags
tools: gpio: Append extra cflags
tools: hv: Append extra cflags
tools: iio: Append extra cflags
tools: mm: Append extra cflags
tools: objtool: Append extra host cflags
tools: power: acpi: Append extra cflags
tools: power: x86/intel-speed-select: Append extra cflags
tools: sched_ext: Append extra cflags
tools: spi: Append extra cflags
tools: tracing: Append extra cflags
tools: usb: Append extra cflags
selftests/hid: Append extra cflags
selftests/nolibc: Append extra cflags
selftests/sched_ext: Append extra cflags

tools/bootconfig/Makefile | 1 +
tools/bpf/bpftool/Makefile | 9 +++++++--
tools/build/Makefile | 6 ++++--
tools/counter/Makefile | 1 +
tools/dma/Makefile | 1 +
tools/gpio/Makefile | 1 +
tools/hv/Makefile | 1 +
tools/iio/Makefile | 1 +
tools/lib/thermal/Makefile | 20 ++++++++++---------
tools/mm/Makefile | 1 +
tools/objtool/Makefile | 2 ++
tools/perf/Makefile.config | 2 +-
tools/power/acpi/Makefile.config | 1 +
tools/power/x86/intel-speed-select/Makefile | 1 +
tools/sched_ext/Makefile | 1 +
tools/scripts/Makefile.include | 30 +++++++++++++++++++++++++++++
tools/spi/Makefile | 1 +
tools/testing/selftests/hid/Makefile | 1 +
tools/testing/selftests/nolibc/Makefile | 7 +++----
tools/testing/selftests/sched_ext/Makefile | 1 +
tools/thermal/lib/Makefile | 20 ++++++++++---------
tools/tracing/latency/Makefile | 1 +
tools/usb/Makefile | 1 +
23 files changed, 84 insertions(+), 27 deletions(-)
---
base-commit: a989fde763f4f24209e4702f50a45be572340e68
change-id: 20260224-tools_build_fix_zero_init-dc5261bd8b8b

Best regards,
--
Leo Yan <leo.yan@arm.com>