Re: [PATCH v2 11/21] kbuild: avoid re-running compiler and linker probes
From: John Stoffel
Date: Mon Sep 14 2026 - 11:34:48 EST
>>>>> "Lorenzo" == Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx> writes:
> Each kernel make invocation begins with ~30 compiler and linker runs each
> of which performs duplicate probe for a number of compiler and linker
> options.
> This is useless work - the compiler and its version is known, so use these
> to determine which options are available, once.
> A convention already exists for this - CC_HAS_xxx, LD_HAS_xxx in Kconfig
> files (for example, CC_HAS_COUNTED_BY), so convert these probes to Kconfig
> options where appropriate.
> This change avoids a sublte issue with ppc32 (big endian) - clang doesn't
^^^^^^
subtle
> accept -fno-stack-clash-protection on this sub-target, so keep this option
> in the Makefile.
> With gcc and clang, defconfig and allmodconfig, the recorded command
> lines are unchanged, a build with nothing to do rebuilds nothing and W=1
> continues to function correctly.
> Doing this improves all builds, but has a particularly positive impact on
> no-op builds (builds where nothing has changed).
> Whole build, 128-thread Threadripper 9980X, best of N runs:
> before after delta
> -------------------------------
> x86 defconfig, no-op make, gcc 0.78s 0.60s -0.18s (-23%)
> x86 defconfig, no-op make, clang 0.94s 0.66s -0.28s (-30%)
> x86 defconfig, touch mm/vma.c, gcc 8.6s 8.5s -0.16s (-2%)
> x86 defconfig, touch mm/vma.c, clang 8.0s 7.7s -0.24s (-3%)
> x86 defconfig, clean, clang 29.8s 29.4s -0.37s (-1%)
> x86 allmodconfig, no-op make, gcc 12.9s 12.7s -0.23s (-2%)
> x86 allmodconfig, no-op make, clang 14.2s 13.9s -0.29s (-2%)
> x86 allmodconfig, touch mm/vma.c, clang 32.2s 31.9s -0.30s (-1%)
Are these deltas just per-patch, but cumulative with all the previous
patches applied?