* linux-next: manual merge of the random tree with the kbuild tree
@ 2026-10-01 15:40 Mark Brown
2026-10-01 19:27 ` Nathan Chancellor
0 siblings, 1 reply; 3+ messages in thread
From: Mark Brown @ 2026-10-01 15:40 UTC (permalink / raw)
To: Theodore Ts'o, Jason A. Donenfeld
Cc: KBuild Mailing List, Linux Kernel Mailing List,
Linux Next Mailing List, Lorenzo Stoakes, Nathan Chancellor,
Nicolas Schier
[-- Attachment #1: Type: text/plain, Size: 8673 bytes --]
Hi all,
Today's linux-next merge of the random tree got a conflict in:
init/Kconfig
between commit:
f85147b291e35 ("kbuild: move the toolchain checks into scripts/Kconfig.toolchain")
from the kbuild tree and commit:
56ff95ee85715 ("random: vDSO: avoid call to memset() when zeroing reserved parameter")
from the random tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
diff --cc init/Kconfig
index ecd71b38fc560,98d8d7fa64c5c..0000000000000
--- a/init/Kconfig
+++ b/init/Kconfig
@@@ -1,7 -1,207 +1,5 @@@
# SPDX-License-Identifier: GPL-2.0-only
-config CC_VERSION_TEXT
- string
- default "$(CC_VERSION_TEXT)"
- help
- This is used in unclear ways:
-
- - Re-run Kconfig when the compiler is updated
- The 'default' property references the environment variable,
- CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
- When the compiler is updated, Kconfig will be invoked.
-
- - Ensure full rebuild when the compiler is updated
- include/linux/compiler-version.h contains this option in the comment
- line so fixdep adds include/config/CC_VERSION_TEXT into the
- auto-generated dependency. When the compiler is updated, syncconfig
- will touch it and then every file will be rebuilt.
-
-config CC_IS_GCC
- def_bool $(success,test "$(cc-name)" = GCC)
-
-config GCC_VERSION
- int
- default $(cc-version) if CC_IS_GCC
- default 0
-
-config CC_IS_CLANG
- def_bool $(success,test "$(cc-name)" = Clang)
-
-config CLANG_VERSION
- int
- default $(cc-version) if CC_IS_CLANG
- default 0
-
-config AS_IS_GNU
- def_bool $(success,test "$(as-name)" = GNU)
-
-config AS_IS_LLVM
- def_bool $(success,test "$(as-name)" = LLVM)
-
-config AS_VERSION
- int
- # Use clang version if this is the integrated assembler
- default CLANG_VERSION if AS_IS_LLVM
- default $(as-version)
-
-config LD_IS_BFD
- def_bool $(success,test "$(ld-name)" = BFD)
-
-config LD_VERSION
- int
- default $(ld-version) if LD_IS_BFD
- default 0
-
-config LD_IS_LLD
- def_bool $(success,test "$(ld-name)" = LLD)
-
-config LLD_VERSION
- int
- default $(ld-version) if LD_IS_LLD
- default 0
-
-config RUSTC_VERSION
- int
- default $(rustc-version)
- help
- It does not depend on `RUST` since that one may need to use the version
- in a `depends on`.
-
-config RUST_IS_AVAILABLE
- def_bool $(success,$(srctree)/scripts/rust_is_available.sh)
- help
- This shows whether a suitable Rust toolchain is available (found).
-
- Please see Documentation/rust/quick-start.rst for instructions on how
- to satisfy the build requirements of Rust support.
-
- In particular, the Makefile target 'rustavailable' is useful to check
- why the Rust toolchain is not being detected.
-
-config RUSTC_LLVM_VERSION
- int
- default $(rustc-llvm-version)
-
-config RUSTC_LLVM_MAJOR_VERSION
- int
- default $(shell,expr $(rustc-llvm-version) / 10000)
-
-config RUSTC_CLANG_LLVM_COMPATIBLE
- bool
- default y if CC_IS_CLANG && RUSTC_LLVM_MAJOR_VERSION = $(shell,expr $(cc-version) / 10000)
- help
- This indicates whether Rust and Clang use LLVM of the same major
- version.
-
- Operations involving handling LLVM IR or bitcode (e.g. cross-language
- LTO) require the same LLVM major version to work properly. For best
- compatibility it is recommended that the exact same LLVM is used.
-
-config ARCH_HAS_CC_CAN_LINK
- bool
-
-config CC_CAN_LINK
- bool
- default ARCH_CC_CAN_LINK if ARCH_HAS_CC_CAN_LINK
- default $(cc_can_link_user,$(m64-flag)) if 64BIT
- default $(cc_can_link_user,$(m32-flag))
-
-# Fixed in GCC 14, 13.3, 12.4 and 11.5
-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
-config GCC_ASM_GOTO_OUTPUT_BROKEN
- bool
- depends on CC_IS_GCC
- default y if GCC_VERSION < 110500
- default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
- default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300
-
-config CC_HAS_ASM_GOTO_OUTPUT
- def_bool y
- depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
- depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
-
-config CC_HAS_ASM_GOTO_TIED_OUTPUT
- depends on CC_HAS_ASM_GOTO_OUTPUT
- # Detect buggy gcc and clang, fixed in gcc-11 clang-14.
- def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
-
-config TOOLS_SUPPORT_RELR
- def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
-
-config CC_HAS_ASM_INLINE
- def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
-
-config CC_HAS_ASSUME
- bool
- # clang needs to be at least 19.1.0 since the meaning of the assume
- # attribute changed:
- # https://github.com/llvm/llvm-project/commit/c44fa3e8a9a44c2e9a575768a3c185354b9f6c17
- default y if CC_IS_CLANG && CLANG_VERSION >= 190100
- # supported since gcc 13.1.0
- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106654
- default y if CC_IS_GCC && GCC_VERSION >= 130100
-
-config CC_HAS_NO_PROFILE_FN_ATTR
- def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
-
-config CC_HAS_COUNTED_BY
- bool
- # clang needs to be at least 20.1.0 to avoid potential crashes
- # when building structures that contain __counted_by
- # https://github.com/ClangBuiltLinux/linux/issues/2114
- # https://github.com/llvm/llvm-project/commit/160fb1121cdf703c3ef5e61fb26c5659eb581489
- default y if CC_IS_CLANG && CLANG_VERSION >= 200100
- # supported since gcc 15.1.0
- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
- default y if CC_IS_GCC && GCC_VERSION >= 150100
-
-config CC_HAS_COUNTED_BY_PTR
- bool
- # supported since clang 22
- default y if CC_IS_CLANG && CLANG_VERSION >= 220100
- # supported since gcc 16.0.0
- default y if CC_IS_GCC && GCC_VERSION >= 160000
-
-config CC_HAS_BROKEN_COUNTED_BY_REF
- bool
- # https://github.com/llvm/llvm-project/issues/182575
- default y if CC_IS_CLANG && CLANG_VERSION < 220100
-
-config CC_HAS_ALLOC_TOKEN
- def_bool $(cc-option,-falloc-token-max=123)
-
-config CC_HAS_MULTIDIMENSIONAL_NONSTRING
- def_bool $(success,echo 'char tag[][4] __attribute__((__nonstring__)) = { };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror)
-
-config CC_OPT_INLINE_MEMSET
- string
- default "-finline-stringops=memset" if $(cc-option,-finline-stringops=memset)
- default "-mllvm -max-store-memset=4294967295" if $(cc-option,-mllvm -max-store-memset=4294967295)
-
-config LD_CAN_USE_KEEP_IN_OVERLAY
- # ld.lld prior to 21.0.0 did not support KEEP within an overlay description
- # https://github.com/llvm/llvm-project/pull/130661
- def_bool LD_IS_BFD || LLD_VERSION >= 210000
-
-config RUSTC_HAS_SPAN_FILE
- def_bool RUSTC_VERSION >= 108800
-
-config RUSTC_HAS_UNNECESSARY_TRANSMUTES
- def_bool RUSTC_VERSION >= 108800
-
-config RUSTC_HAS_FILE_WITH_NUL
- def_bool RUSTC_VERSION >= 108900
-
-config RUSTC_HAS_FILE_AS_C_STR
- def_bool RUSTC_VERSION >= 109100
-
-config RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS
- def_bool RUSTC_VERSION >= 109800
-
-config PAHOLE_VERSION
- int
- default "$(PAHOLE_VERSION)"
- source "scripts/Kconfig.toolchain"
-
config CONSTRUCTORS
bool
diff --git a/scripts/Kconfig.toolchain b/scripts/Kconfig.toolchain
index d708a175fe486..28bf11fe7bee7 100644
--- a/scripts/Kconfig.toolchain
+++ b/scripts/Kconfig.toolchain
@@ -166,6 +166,11 @@ config CC_OPT_ALLOW_STORE_DATA_RACES_PARAM
config CC_OPT_NO_ALLOW_STORE_DATA_RACES
def_string "$(cc-option-str,-fno-allow-store-data-races)" if CC_IS_GCC
+config CC_OPT_INLINE_MEMSET
+ string
+ default "-finline-stringops=memset" if $(cc-option,-finline-stringops=memset)
+ default "-mllvm -max-store-memset=4294967295" if $(cc-option,-mllvm -max-store-memset=4294967295)
+
config CC_HAS_MNOP_MCOUNT
def_bool $(cc-option,-mnop-mcount)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: linux-next: manual merge of the random tree with the kbuild tree
2026-10-01 15:40 linux-next: manual merge of the random tree with the kbuild tree Mark Brown
@ 2026-10-01 19:27 ` Nathan Chancellor
2026-10-01 21:13 ` Mark Brown
0 siblings, 1 reply; 3+ messages in thread
From: Nathan Chancellor @ 2026-10-01 19:27 UTC (permalink / raw)
To: Mark Brown
Cc: Theodore Ts'o, Jason A. Donenfeld, KBuild Mailing List,
Linux Kernel Mailing List, Linux Next Mailing List,
Lorenzo Stoakes, Nicolas Schier
Hi Mark,
On Thu, Oct 01, 2026 at 04:40:17PM +0100, Mark Brown wrote:
> Today's linux-next merge of the random tree got a conflict in:
>
> init/Kconfig
>
> between commit:
>
> f85147b291e35 ("kbuild: move the toolchain checks into scripts/Kconfig.toolchain")
>
> from the kbuild tree and commit:
>
> 56ff95ee85715 ("random: vDSO: avoid call to memset() when zeroing reserved parameter")
>
> from the random tree.
Thanks, I knew this was coming and the resolution almost looks correct
but...
> diff --cc init/Kconfig
> index ecd71b38fc560,98d8d7fa64c5c..0000000000000
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@@ -1,7 -1,207 +1,5 @@@
...
> -config PAHOLE_VERSION
> - int
> - default "$(PAHOLE_VERSION)"
>
> - source "scripts/Kconfig.toolchain"
> -
You appear to have dropped this source line, which I believe is the root
cause of https://lore.kernel.org/ar5-8C-j_JT5OYQm@sirena.org.uk/.
Restore it and the resolution should be correct with no build errors.
--
Cheers,
Nathan
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: linux-next: manual merge of the random tree with the kbuild tree
2026-10-01 19:27 ` Nathan Chancellor
@ 2026-10-01 21:13 ` Mark Brown
0 siblings, 0 replies; 3+ messages in thread
From: Mark Brown @ 2026-10-01 21:13 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Theodore Ts'o, Jason A. Donenfeld, KBuild Mailing List,
Linux Kernel Mailing List, Linux Next Mailing List,
Lorenzo Stoakes, Nicolas Schier
[-- Attachment #1: Type: text/plain, Size: 607 bytes --]
On Thu, Oct 01, 2026 at 09:27:31PM +0200, Nathan Chancellor wrote:
> On Thu, Oct 01, 2026 at 04:40:17PM +0100, Mark Brown wrote:
> > -config PAHOLE_VERSION
> > - int
> > - default "$(PAHOLE_VERSION)"
> >
> > - source "scripts/Kconfig.toolchain"
> > -
> You appear to have dropped this source line, which I believe is the root
> cause of https://lore.kernel.org/ar5-8C-j_JT5OYQm@sirena.org.uk/.
> Restore it and the resolution should be correct with no build errors.
You're quite right, sorry - I got distracted by the complictated bit
with having to update a non-conflicting file.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-01 21:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-01 15:40 linux-next: manual merge of the random tree with the kbuild tree Mark Brown
2026-10-01 19:27 ` Nathan Chancellor
2026-10-01 21:13 ` Mark Brown
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®