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

Leo Yan posted 26 patches 2 weeks, 5 days ago
There is a newer version of this series
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(-)
[PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option
Posted by Leo Yan 2 weeks, 5 days ago
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>

Re: [PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option
Posted by Quentin Monnet 2 weeks, 5 days ago
2026-03-18 09:16 UTC+0000 ~ Leo Yan <leo.yan@arm.com>
> 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).


Hi Leo, if it's all the same to you, could bpftool patches go through
the bpf-next tree as well, please? (You can keep my tags, of course.)

Thanks,
Quentin
Re: [PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option
Posted by Leo Yan 2 weeks, 5 days ago
On Wed, Mar 18, 2026 at 02:56:24PM +0000, Quentin Monnet wrote:
> 2026-03-18 09:16 UTC+0000 ~ Leo Yan <leo.yan@arm.com>
> > 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).
> 
> 
> Hi Leo, if it's all the same to you, could bpftool patches go through
> the bpf-next tree as well, please? (You can keep my tags, of course.)

Sure!

I need to look into BPF CI failures, seems the extra cflags causes
regressions in eBPF selftest [1][2].  After make things clear, I will
send patch series separately (a common one and a BPF one).

Thanks,
Leo

[1] https://github.com/kernel-patches/bpf/actions/runs/23238743267/job/67551317220
[2] https://github.com/kernel-patches/bpf/actions/runs/23238743267/job/67551683133
Re: [PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option
Posted by Peter Zijlstra 2 weeks, 5 days ago
On Wed, Mar 18, 2026 at 09:16:44AM +0000, Leo Yan wrote:
> 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).

So why can't you just copy-paste that yourself, and save me from having
to go find a browser and copy/paste the stupid link, just to find
something that should have been here to begin with?!
Re: [PATCH v5 00/26] tools build: Append -fzero-init-padding-bits=all option
Posted by Leo Yan 2 weeks, 5 days ago
On Wed, Mar 18, 2026 at 12:53:25PM +0100, Peter Zijlstra wrote:
> On Wed, Mar 18, 2026 at 09:16:44AM +0000, Leo Yan wrote:
> > 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).
> 
> So why can't you just copy-paste that yourself, and save me from having
> to go find a browser and copy/paste the stupid link, just to find
> something that should have been here to begin with?!

Sorry about that!

I didn't expect a link to cause trouble.  I'll include the information
instead later.