Linux kbuild/kconfig development
 help / color / mirror / Atom feed
From: Leo Yan <leo.yan@arm.com>
To: "Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Ian Rogers" <irogers@google.com>,
	"Namhyung Kim" <namhyung@kernel.org>,
	"James Clark" <james.clark@linaro.org>,
	"Kees Cook" <kees@kernel.org>, "Quentin Monnet" <qmo@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nsc@kernel.org>,
	"Nick Desaulniers" <nick.desaulniers+lkml@gmail.com>,
	"Bill Wendling" <morbo@google.com>,
	"Justin Stitt" <justinstitt@google.com>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Martin KaFai Lau" <martin.lau@linux.dev>,
	"Eduard Zingerman" <eddyz87@gmail.com>,
	"Song Liu" <song@kernel.org>,
	"Yonghong Song" <yonghong.song@linux.dev>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"KP Singh" <kpsingh@kernel.org>,
	"Stanislav Fomichev" <sdf@fomichev.me>,
	"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Daniel Lezcano" <daniel.lezcano@kernel.org>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Lukasz Luba" <lukasz.luba@arm.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"William Breathitt Gray" <wbg@kernel.org>,
	"Barry Song" <baohua@kernel.org>,
	"Qinxin Xia" <xiaqinxin@huawei.com>,
	"Bartosz Golaszewski" <brgl@kernel.org>,
	"Kent Gibson" <warthog618@gmail.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Dexuan Cui" <decui@microsoft.com>,
	"Long Li" <longli@microsoft.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Willy Tarreau" <w@1wt.eu>,
	"Thomas Weißschuh" <linux@weissschuh.net>,
	"Josh Poimboeuf" <jpoimboe@kernel.org>,
	"Robert Moore" <robert.moore@intel.com>,
	"Len Brown" <lenb@kernel.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"Tejun Heo" <tj@kernel.org>, "David Vernet" <void@manifault.com>,
	"Andrea Righi" <arighi@nvidia.com>,
	"Changwoo Min" <changwoo@igalia.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Gabriele Monaco" <gmonaco@redhat.com>,
	"Shuah Khan" <shuah@kernel.org>, "Jiri Kosina" <jikos@kernel.org>,
	"Benjamin Tissoires" <bentiss@kernel.org>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-perf-users@vger.kernel.org, Leo Yan <leo.yan@arm.com>,
	 Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,
	 Jonathan Cameron <jic23@kernel.org>
Subject: [PATCH v7 00/23] tools build: Append -fzero-init-padding-bits=all option
Date: Tue, 02 Jun 2026 15:40:34 +0100	[thread overview]
Message-ID: <20260602-tools_build_fix_zero_init-v7-0-631baf679fe7@arm.com> (raw)

GCC-15 doesn't guarantee that a {0} initializer clears the whole union [1].
This may cause bugs if data is not intialized properly.

The kernel enabld the -fzero-init-padding-bits=all option to tackle the
issue, which was merged in commit dce4aab8441d ("kbuild: Use
-fzero-init-padding-bits=all").

This series propagates the same flag to the tools build.  It uses
tools/scripts/Makefile.include as the central place to add the
option to EXTRA_CFLAGS and HOST_EXTRACFLAGS for the CC and HOSTCC
compilers.  Each project under tools/ appends the variables as needed.

BPF/bpftool related patches will be sent separately, as maintainers
prefer them to go via the BPF tree.

The changes are organized into three parts:

  Patches 01 – 04: Fixes for thermal build.
  Patch 05:        Rename to cross-cc-option so the function name
                   cc-option can be reserved for using globally.
  Patch 06:        Propagate -fzero-init-padding-bits=all to
                   EXTRA_CFLAGS and HOST_EXTRACFLAGS for the
                   CC and HOSTCC compilers, respectively.
  Patches 07 – 23: Apply EXTRA_CFLAGS and HOST_EXTRACFLAGS in
                   project Makefiles.

The change has been verified:

Test 1: Cross compiling perf (rebased on perf-tools-next)
	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: BPF CI test (BPF patches will be sent separately)

  https://github.com/kernel-patches/bpf/actions/runs/26815163486

[1] https://gcc.gnu.org/gcc-15/changes.html

Signed-off-by: Leo Yan <leo.yan@arm.com>
---
Changes in v7:
- Appended $(EXTRA_CFLAGS) in tracing/rtla/Makefile.
- Refactored testing/selftests/lib.mk to include Makefile.include, as
  the $(EXTRA_CFLAGS) can be applied globally for selftest, dropped the
  patches for selftests/hid, selftests/nolibc and selftests/sched_ext.
- Link to v6: https://lore.kernel.org/r/20260323-tools_build_fix_zero_init-v6-0-235858c51af9@arm.com

Changes in v6:
- Gathered Acked tags (thanks Jonathan!)
- Left out bpftool patches and will send together with other BPF patches (Quentin)
- Added back complete info in cover (Peter.Z)
- Link to v5: https://lore.kernel.org/r/20260318-tools_build_fix_zero_init-v5-0-bbeffd8da199@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

---
Leo Yan (23):
      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
      selftests/nolibc: Use a dedicated cross cc-option helper
      tools build: Append -fzero-init-padding-bits=all to extra cflags
      perf build: Append extra host flags
      tools build: Append extra host CFLAGS for fixdep
      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: Include tools Makefile.include

 tools/bootconfig/Makefile                      |  1 +
 tools/build/Makefile                           |  8 ++++---
 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/lib.mk                 | 30 +++++++++++++-------------
 tools/testing/selftests/nolibc/Makefile.nolibc | 12 +++++------
 tools/thermal/lib/Makefile                     | 20 +++++++++--------
 tools/tracing/latency/Makefile                 |  1 +
 tools/tracing/rtla/Makefile                    |  1 +
 tools/usb/Makefile                             |  1 +
 22 files changed, 95 insertions(+), 43 deletions(-)
---
base-commit: 6f3ed7fec72fc8979b2a8c7219c0a9fcfc8d07b5
change-id: 20260224-tools_build_fix_zero_init-dc5261bd8b8b

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


             reply	other threads:[~2026-06-02 14:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-02 14:40 Leo Yan [this message]
2026-06-02 14:40 ` [PATCH v7 01/23] tools: lib: thermal: Fix typo Leo Yan
2026-06-02 14:40 ` [PATCH v7 02/23] tools/thermal: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 03/23] tools: lib: thermal: Initialize CFLAGS before including Makefile.include Leo Yan
2026-06-02 14:40 ` [PATCH v7 04/23] tools/thermal: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 05/23] selftests/nolibc: Use a dedicated cross cc-option helper Leo Yan
2026-06-02 14:40 ` [PATCH v7 06/23] tools build: Append -fzero-init-padding-bits=all to extra cflags Leo Yan
2026-06-02 14:40 ` [PATCH v7 07/23] perf build: Append extra host flags Leo Yan
2026-06-02 14:40 ` [PATCH v7 08/23] tools build: Append extra host CFLAGS for fixdep Leo Yan
2026-06-02 14:40 ` [PATCH v7 09/23] tools: bootconfig: Append extra cflags Leo Yan
2026-06-02 14:40 ` [PATCH v7 10/23] tools: counter: " Leo Yan
2026-06-04  2:02   ` William Breathitt Gray
2026-06-02 14:40 ` [PATCH v7 11/23] tools: dma: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 12/23] tools: gpio: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 13/23] tools: hv: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 14/23] tools: iio: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 15/23] tools: mm: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 16/23] tools: objtool: Append extra host cflags Leo Yan
2026-06-02 14:40 ` [PATCH v7 17/23] tools: power: acpi: Append extra cflags Leo Yan
2026-06-02 14:40 ` [PATCH v7 18/23] tools: power: x86/intel-speed-select: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 19/23] tools: sched_ext: " Leo Yan
2026-06-02 21:27   ` Tejun Heo
2026-06-02 14:40 ` [PATCH v7 20/23] tools: spi: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 21/23] tools: tracing: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 22/23] tools: usb: " Leo Yan
2026-06-02 14:40 ` [PATCH v7 23/23] selftests: Include tools Makefile.include Leo Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260602-tools_build_fix_zero_init-v7-0-631baf679fe7@arm.com \
    --to=leo.yan@arm.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=andrii@kernel.org \
    --cc=andy@kernel.org \
    --cc=arighi@nvidia.com \
    --cc=ast@kernel.org \
    --cc=baohua@kernel.org \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=bentiss@kernel.org \
    --cc=brgl@kernel.org \
    --cc=broonie@kernel.org \
    --cc=changwoo@igalia.com \
    --cc=daniel.lezcano@kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=decui@microsoft.com \
    --cc=dlechner@baylibre.com \
    --cc=eddyz87@gmail.com \
    --cc=gmonaco@redhat.com \
    --cc=haiyangz@microsoft.com \
    --cc=haoluo@google.com \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=jic23@kernel.org \
    --cc=jikos@kernel.org \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jpoimboe@kernel.org \
    --cc=justinstitt@google.com \
    --cc=kees@kernel.org \
    --cc=kpsingh@kernel.org \
    --cc=kys@microsoft.com \
    --cc=lenb@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux@weissschuh.net \
    --cc=longli@microsoft.com \
    --cc=lukasz.luba@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=martin.lau@linux.dev \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=morbo@google.com \
    --cc=namhyung@kernel.org \
    --cc=nathan@kernel.org \
    --cc=nick.desaulniers+lkml@gmail.com \
    --cc=nsc@kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=peterz@infradead.org \
    --cc=qmo@kernel.org \
    --cc=rafael@kernel.org \
    --cc=robert.moore@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=rui.zhang@intel.com \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tj@kernel.org \
    --cc=void@manifault.com \
    --cc=w@1wt.eu \
    --cc=warthog618@gmail.com \
    --cc=wbg@kernel.org \
    --cc=wei.liu@kernel.org \
    --cc=xiaqinxin@huawei.com \
    --cc=yonghong.song@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox