* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®