* [GIT PULL] Kbuild / Kconfig updates for 7.4
@ 2026-10-18 3:58 Nathan Chancellor
0 siblings, 0 replies; only message in thread
From: Nathan Chancellor @ 2026-10-18 3:58 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Nicolas Schier, linux-kbuild
Hi Linus,
Please pull the following Kbuild and Kconfig updates for 7.4, with
full details available in the signed tag.
You will see an immediate conflict in init/Kconfig between
eb13a1ff271b ("random: vDSO: avoid call to memset() when zeroing reserved parameter")
that went into 7.3-rc6 and
f85147b291e3 ("kbuild: move the toolchain checks into scripts/Kconfig.toolchain")
in my tree. The solution in init/Kconfig should be obvious but make sure
to reapply eb13a1ff271b in scripts/Kconfig.toolchain, which I have been
doing in -next easily with:
$ git show eb13a1ff271b init/Kconfig | sed 's;init/Kconfig;scripts/Kconfig.toolchain;g' | git apply -3v
My latest merge is at
https://git.kernel.org/kbuild/c/2a5a1c2fab91358d44198eb16bf83e4989f73333
for reference if necessary.
There are a few other conflicts that I have been notified about in
-next, which all appear to be minor.
- Makefile from the rust tree:
https://lore.kernel.org/asl8rgrKtHW3_-Yc@sirena.co.uk/
- drivers/firmware/efi/libstub/Makefile from the efi tree:
https://lore.kernel.org/aslflbcgByI1rH2_@sirena.co.uk/
- scripts/kallsyms.c from the -mm tree:
https://lore.kernel.org/arz2wQWcnS9499di@sirena.org.uk/
- scripts/remove-stale-files from the rust tree:
https://lore.kernel.org/asN8ejNILKW2YWep@sirena.co.uk/
If there are any issues or concerns, please let me know.
Cheers,
Nathan
The following changes since commit 59351365ac271b5e0eb180f211c531476a36221f:
scripts/mksysmap: fix escape of '$' in the __pi_ pattern (2026-09-12 20:01:19 +0200)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-7.4-1
for you to fetch changes up to 997208ce9f43f01febac956cf9aeffe89945e3c1:
Merge branch 'kbuild-next-speedups' into kbuild-next (2026-10-17 15:20:23 -0700)
----------------------------------------------------------------
Kbuild / Kconfig updates for 7.4
Kbuild:
- Suppress compiler flags in debug info for external module builds
- Use '-fmacro-prefix-map' in more places in the build
- Merge initial set of changes from Lorenzo's speed up series, along
with some fixes found through testing
- Avoid allocating .modinfo in vmlinux
- Speed up kallsyms by indexing symbols by token and outputting binary
data to disk directly then including in assembly via .incbin
- Don't sort $(NM) output when unnecessary
- Only emit relocations on the final vmlinx link
- Reimplement mksysmap in C
- Move many cc-option and ld-option calls into the Kconfig stage to
cache their results
- Use pigz for gzip compression when available
- Move gen_init_cpio and gen_initramfs.sh from usr/ to scripts/
- Add a TOML configuration to scripts/container and update documentation
accordingly
- Add a generic, opt-in mechanism for checking that headers can compile
standalone
- Update machine function splitting argument for LLVM 24 rename in
AutoFDO build
- Miscellaneous minor clean ups, fixes, and hardening, mostly
found/fixed via LLMs
Kconfig:
- Turn recursive ranges into an error
- Fix savedefconfig for defaults that were adjusted for being out of
range and revert a previously applied workaround
- Improvements and hardening around integer and hexadecimal values
- Emit a warning when selecting or implying a choice symbol, which has no
effect
- Emit a warning when KCONFIG_PROBABILITY is malformed
- Introduce def_string / def_int / def_hex to mirror the existing
def_bool / def_tristate to succinctly set a value and type at the same
time.
- Add cc-option-str and ld-option-str macros to act like Kbuild's
cc-option and ld-option, returning the string when the option is
supported, allowing many checks to be moved into Kconfig
- Minor usability improvements to Kconfig tests
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
----------------------------------------------------------------
Aaron Tomlin (1):
localmodconfig: Explicitly report boolean configs during integrity check
Aayansh Ranjan (1):
kbuild: fix grammar in output Makefile .gitignore generation comment
Bhaskar Chowdhury (1):
scripts/mkcompile_h: Update LINUX_COMPILE_HOST command substitution syntax
Brigham Campbell (1):
.gitignore: ignore pacman package signatures
Dmitrii Tulnov (1):
kconfig: warn about malformed KCONFIG_PROBABILITY values
Erkan Erdem (1):
docs: kconfig: fix shell function syntax in caveats
Guillaume Tucker (3):
scripts: add TOML config to container tool
Documentation: dev-tools: update container.rst with config file
Documentation: dev-tools: refer to user ID rather than id
Hemanth Selam (1):
kbuild: fix typo "funtions" in comment
Jaihind Yadav (1):
scripts/gcc-plugins: suppress recorded GCC switches for extmod builds
Jan Stancek (1):
.gitignore: drop Module.markers
Jani Nikula (1):
kbuild: add header check facility as a manually run static analyzer
Julian Braha (9):
kconfig: error out for recursive range
kconfig: fix extra output from savedefconfig on out-of-range defaults
kconfig: promote invalid numeric reference from warning to error
kconfig: check for out-of-bounds numeric constants
kconfig: check for hex and int mismatches
kconfig: prevent out-of-bounds user input for numeric options
kconfig: use unsigned integers for hex range checks
tee: remove TZMEM_MODE_GENERIC
kconfig: cleanup stale comment about 'keys' array
Kees Cook (5):
kconfig: Add "def_string", "def_int" and "def_hex"
kconfig: Replace "cc-option-bit" with "cc-option-str"
kconfig: Add "ld-option-str"
kbuild: Mark the gzip recipes as recursive
kbuild: Mark the initcall ordering recipe as recursive
Leizhen Zhang (3):
gen_init_cpio: stop parsing on lines with a missing argument list
kconfig: fix infinite loop in conf_choice() when no choice value is visible
kconfig: use the value argument in sym_get_near_range_bound()
Lorenzo Stoakes (ARM) (11):
kbuild: do not allocate .modinfo in vmlinux
kallsyms: index symbols by token to speed up table compression
kallsyms: output binary data to speed output and kallsyms assembly
sorttable: parse nm output correctly
kbuild: do not sort nm output where the order is irrelevant
kbuild: only emit vmlinux relocations when required
elf-parse: add section flags, symbol binding and mapping helpers
kallsyms: reimplement mksysmap in C
kbuild: move the toolchain checks into scripts/Kconfig.toolchain
kbuild: avoid re-running compiler and linker probes
kbuild: compress the kernel with pigz if available
Nathan Chancellor (8):
erofs: Revert "Fix EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS default logic"
Merge tag 'kbuild-tzmem-kconfig-7.4' into kbuild-next
Merge tag 'kbuild-fixes-7.3-1' into kbuild-next
kbuild: Remove alignment on .modinfo section
scripts/Kconfig.toolchain: Drop compiler symbols from dependencies
kconfig: Improve ergonomics around disabling warnings with cc-option
kbuild: AutoFDO: Update split machine function argument for upstream rename
Merge branch 'kbuild-next-speedups' into kbuild-next
Nicolas Schier (7):
kconfig: Warn on dead select or imply for choice values
kbuild: Mark usr_gen_init_cpio as no-dot-config-target
kbuild: Move gen_init_cpio and gen_initramfs.sh to scripts/
kconfig: tests: Reset all KCONFIG_* env variables by default
kconfig: tests: Provide defconfig outfile for savedefconfig
kconfig: tests: warn_changed_input: Simplify by reusing the extra env
kconfig: tests: {old,save}defconfig: Forward dynamic keyword arguments
Sasha Levin (1):
kbuild: keep .modinfo when vmlinux is linked with --gc-sections
Thomas Weißschuh (1):
kbuild: use prefix-map for host and user progs
Ting-Han Hou (3):
checkkconfigsymbols.py: Parse Git status output line by line
clang-tools: Import os for broken pipe handling
scripts/make_fit: Ignore schema checks when decomposing DTBs
Yuntao Wang (1):
setlocalversion: make tag local to try_tag()
.gitignore | 3 +-
Documentation/dev-tools/container.rst | 118 ++++++-
.../early-userspace/early_userspace_support.rst | 16 +-
.../filesystems/ramfs-rootfs-initramfs.rst | 10 +-
Documentation/kbuild/kbuild.rst | 17 +
Documentation/kbuild/kconfig-language.rst | 13 +-
Documentation/kbuild/kconfig-macro-language.rst | 8 +-
Documentation/kbuild/makefiles.rst | 7 +-
Documentation/process/changes.rst | 8 +
MAINTAINERS | 2 +
Makefile | 76 +++--
arch/alpha/boot/Makefile | 4 +-
arch/arc/boot/Makefile | 2 +-
arch/arm/boot/compressed/Makefile | 2 +-
arch/arm64/boot/Makefile | 2 +-
arch/arm64/kernel/pi/Makefile | 2 +-
arch/csky/boot/Makefile | 2 +-
arch/microblaze/boot/Makefile | 2 +-
arch/mips/boot/Makefile | 2 +-
arch/mips/boot/compressed/Makefile | 2 +-
arch/nios2/boot/Makefile | 2 +-
arch/parisc/boot/compressed/Makefile | 2 +-
arch/riscv/boot/Makefile | 2 +-
arch/riscv/kernel/pi/Makefile | 2 +-
arch/s390/boot/Makefile | 2 +-
arch/sh/boot/Makefile | 2 +-
arch/sh/boot/compressed/Makefile | 2 +-
arch/sparc/boot/Makefile | 4 +-
arch/x86/Kconfig | 17 +
arch/x86/Makefile | 12 +-
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 4 +-
arch/xtensa/boot/Makefile | 2 +-
drivers/firmware/efi/libstub/Makefile | 2 +-
drivers/firmware/efi/libstub/Makefile.zboot | 2 +-
drivers/firmware/qcom/Kconfig | 26 +-
drivers/firmware/qcom/qcom_tzmem.c | 4 +-
fs/erofs/Kconfig | 8 +-
include/asm-generic/vmlinux.lds.h | 2 +-
init/Kconfig | 197 +----------
kernel/Makefile | 6 +-
scripts/.gitignore | 1 +
scripts/Kconfig.include | 29 +-
scripts/Kconfig.toolchain | 272 +++++++++++++++
scripts/Makefile | 8 +-
scripts/Makefile.autofdo | 2 +-
scripts/Makefile.build | 21 ++
scripts/Makefile.gcc-plugins | 4 +
scripts/Makefile.lib | 4 +-
scripts/Makefile.package | 2 +-
scripts/Makefile.vmlinux | 20 +-
scripts/Makefile.vmlinux_o | 2 +-
scripts/Makefile.warn | 28 +-
scripts/check-function-names.sh | 3 +-
scripts/checkkconfigsymbols.py | 2 +-
scripts/clang-tools/run-clang-tools.py | 1 +
scripts/container | 86 ++++-
scripts/elf-parse.c | 103 +++++-
scripts/elf-parse.h | 54 +++
{usr => scripts}/gen_init_cpio.c | 1 +
{usr => scripts}/gen_initramfs.sh | 4 +-
scripts/jobserver-exec | 3 +-
scripts/kallsyms-sysmap.c | 248 ++++++++++++++
scripts/kallsyms.c | 379 +++++++++++++++------
scripts/kallsyms.h | 44 +++
scripts/kconfig/conf.c | 19 +-
scripts/kconfig/confdata.c | 6 +
scripts/kconfig/kconfig-sym-check.pl | 2 +-
scripts/kconfig/lexer.l | 3 +
scripts/kconfig/lkc.h | 2 +-
scripts/kconfig/lkc_proto.h | 1 +
scripts/kconfig/lxdialog/textbox.c | 2 -
scripts/kconfig/menu.c | 66 +++-
scripts/kconfig/parser.y | 8 +-
scripts/kconfig/streamline_config.pl | 20 +-
scripts/kconfig/symbol.c | 106 ++++--
scripts/kconfig/tests/conftest.py | 27 +-
scripts/kconfig/tests/def_type/Kconfig | 28 ++
scripts/kconfig/tests/def_type/__init__.py | 18 +
scripts/kconfig/tests/def_type/expected_guard_n | 9 +
scripts/kconfig/tests/def_type/expected_guard_y | 11 +
scripts/kconfig/tests/def_type/guard_n.config | 1 +
scripts/kconfig/tests/def_type/guard_y.config | 1 +
scripts/kconfig/tests/err_num_bounds/Kconfig | 79 +++++
scripts/kconfig/tests/err_num_bounds/__init__.py | 12 +
.../kconfig/tests/err_num_bounds/expected_stderr | 10 +
scripts/kconfig/tests/err_num_mismatch/Kconfig | 38 +++
scripts/kconfig/tests/err_num_mismatch/__init__.py | 9 +
.../kconfig/tests/err_num_mismatch/expected_stderr | 4 +
.../kconfig/tests/err_num_non_numeric_ref/Kconfig | 75 ++++
.../tests/err_num_non_numeric_ref/__init__.py | 9 +
.../tests/err_num_non_numeric_ref/expected_stderr | 16 +
scripts/kconfig/tests/err_recursive_dep/Kconfig | 24 ++
.../tests/err_recursive_dep/expected_stderr | 13 +
.../kconfig/tests/randconfig_probability/Kconfig | 12 +
.../tests/randconfig_probability/__init__.py | 130 +++++++
scripts/kconfig/tests/savedefconfig_range/Kconfig | 67 ++++
.../kconfig/tests/savedefconfig_range/__init__.py | 8 +
scripts/kconfig/tests/savedefconfig_range/config | 8 +
.../tests/savedefconfig_range/expected_defconfig | 0
scripts/kconfig/tests/warn_changed_input/Kconfig | 5 +
.../kconfig/tests/warn_changed_input/__init__.py | 21 +-
.../tests/warn_changed_input/expected_config | 1 +
scripts/kconfig/tests/warn_num_bounds/Kconfig | 24 ++
scripts/kconfig/tests/warn_num_bounds/__init__.py | 25 ++
scripts/kconfig/tests/warn_num_bounds/config | 7 +
.../kconfig/tests/warn_num_bounds/expected_config | 11 +
.../tests/warn_num_bounds/expected_config_stderr | 3 +
.../tests/warn_num_bounds/expected_frontend_config | 11 +
.../tests/warn_num_bounds/expected_frontend_stderr | 0
scripts/link-vmlinux.sh | 24 +-
scripts/make_fit.py | 3 +-
scripts/mkcompile_h | 2 +-
scripts/mksysmap | 94 -----
scripts/remove-stale-files | 2 +
.../sbom/tests/cmd_graph/test_savedcmd_parser.py | 2 +-
scripts/setlocalversion | 3 +-
scripts/sorttable.c | 15 +-
scripts/ver_linux | 1 +
tools/lib/python/jobserver.py | 13 +
tools/testing/selftests/kho/vmtest.sh | 2 +-
tools/testing/selftests/liveupdate/vmtest.sh | 4 +-
tools/testing/selftests/nolibc/Makefile.nolibc | 2 +-
usr/.gitignore | 4 +-
usr/Kconfig | 2 +-
usr/Makefile | 6 +-
126 files changed, 2374 insertions(+), 678 deletions(-)
create mode 100644 scripts/Kconfig.toolchain
rename {usr => scripts}/gen_init_cpio.c (99%)
rename {usr => scripts}/gen_initramfs.sh (97%)
create mode 100644 scripts/kallsyms-sysmap.c
create mode 100644 scripts/kallsyms.h
create mode 100644 scripts/kconfig/tests/def_type/Kconfig
create mode 100644 scripts/kconfig/tests/def_type/__init__.py
create mode 100644 scripts/kconfig/tests/def_type/expected_guard_n
create mode 100644 scripts/kconfig/tests/def_type/expected_guard_y
create mode 100644 scripts/kconfig/tests/def_type/guard_n.config
create mode 100644 scripts/kconfig/tests/def_type/guard_y.config
create mode 100644 scripts/kconfig/tests/err_num_bounds/Kconfig
create mode 100644 scripts/kconfig/tests/err_num_bounds/__init__.py
create mode 100644 scripts/kconfig/tests/err_num_bounds/expected_stderr
create mode 100644 scripts/kconfig/tests/err_num_mismatch/Kconfig
create mode 100644 scripts/kconfig/tests/err_num_mismatch/__init__.py
create mode 100644 scripts/kconfig/tests/err_num_mismatch/expected_stderr
create mode 100644 scripts/kconfig/tests/err_num_non_numeric_ref/Kconfig
create mode 100644 scripts/kconfig/tests/err_num_non_numeric_ref/__init__.py
create mode 100644 scripts/kconfig/tests/err_num_non_numeric_ref/expected_stderr
create mode 100644 scripts/kconfig/tests/randconfig_probability/Kconfig
create mode 100644 scripts/kconfig/tests/randconfig_probability/__init__.py
create mode 100644 scripts/kconfig/tests/savedefconfig_range/Kconfig
create mode 100644 scripts/kconfig/tests/savedefconfig_range/__init__.py
create mode 100644 scripts/kconfig/tests/savedefconfig_range/config
create mode 100644 scripts/kconfig/tests/savedefconfig_range/expected_defconfig
create mode 100644 scripts/kconfig/tests/warn_num_bounds/Kconfig
create mode 100644 scripts/kconfig/tests/warn_num_bounds/__init__.py
create mode 100644 scripts/kconfig/tests/warn_num_bounds/config
create mode 100644 scripts/kconfig/tests/warn_num_bounds/expected_config
create mode 100644 scripts/kconfig/tests/warn_num_bounds/expected_config_stderr
create mode 100644 scripts/kconfig/tests/warn_num_bounds/expected_frontend_config
create mode 100644 scripts/kconfig/tests/warn_num_bounds/expected_frontend_stderr
delete mode 100755 scripts/mksysmap
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-18 3:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18 3:58 [GIT PULL] Kbuild / Kconfig updates for 7.4 Nathan Chancellor
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.