I was building v6.11 for PowerPC when I noticed that `make olddefconfig` hangs indefinitely when running `scripts/kconfig/conf` and gets stuck in what seems an infinite loop at 100% CPU while evaluating an expression. The issue is still present on master of linux-next. I did a bisect run and narrowed it down to this commit: f79dc03fe68c79d388908182e68d702f7f1786bc kconfig: refactor choice value calculation Steps to reproduce: git checkout v6.11 export ARCH=powerpc CROSS_COMPILE=powerpc-linux- make distclean make ppc64_defconfig ./scripts/config --file .config -d PPC64 make olddefconfig # Hangs indefinitely running scripts/kconfig/conf The same outcome can be achieved with: git checkout v6.11 export ARCH=powerpc CROSS_COMPILE=powerpc-linux- make distclean make ppc64_defconfig make menuconfig # Manually disable PPC64 by unchecking "64-bit kernel", save and exit # Hangs indefinitely running scripts/kconfig/mconf Not sure what exactly is causing the issue as I am not familiar with these tools, but it seems to me that conf/mconf get stuck endlessly evaluating an expression. Here is a stack trace after re-compiling with HOSTCFLAGS="-O0 -g" and attaching to the `conf` process with GDB. It looks like the last sym_calc_choice() at frame #4 never returns. #0 0x0000557bc97287cd in expr_calc_value (e=0x557bcb812800) at scripts/kconfig/expr.c:1012 #1 0x0000557bc972880e in expr_calc_value (e=0x557bcb8127e0) at scripts/kconfig/expr.c:1017 #2 0x0000557bc9728823 in expr_calc_value (e=0x557bcb8127a0) at scripts/kconfig/expr.c:1018 #3 0x0000557bc9732a67 in sym_calc_visibility (sym=0x557bca6692e0) at scripts/kconfig/symbol.c:211 #4 0x0000557bc9732db3 in sym_calc_choice (choice=0x557bca669040) at scripts/kconfig/symbol.c:299 #5 0x0000557bc9733384 in sym_calc_value (sym=0x557bca66bb10) at scripts/kconfig/symbol.c:457 #6 0x0000557bc97287ec in expr_calc_value (e=0x557bcb80e710) at scripts/kconfig/expr.c:1014 #7 0x0000557bc9728886 in expr_calc_value (e=0x557bcb80e6f0) at scripts/kconfig/expr.c:1025 #8 0x0000557bc9728823 in expr_calc_value (e=0x557bcb80e670) at scripts/kconfig/expr.c:1018 #9 0x0000557bc972885f in expr_calc_value (e=0x557bcb80e630) at scripts/kconfig/expr.c:1022 #10 0x0000557bc9732a67 in sym_calc_visibility (sym=0x557bca66d970) at scripts/kconfig/symbol.c:211 #11 0x0000557bc97332f3 in sym_calc_value (sym=0x557bca66d970) at scripts/kconfig/symbol.c:443 #12 0x0000557bc97287ec in expr_calc_value (e=0x557bcc6a6cf0) at scripts/kconfig/expr.c:1014 #13 0x0000557bc9728823 in expr_calc_value (e=0x557bcc6a6cb0) at scripts/kconfig/expr.c:1018 #14 0x0000557bc9728823 in expr_calc_value (e=0x557bcc6a6bd0) at scripts/kconfig/expr.c:1018 #15 0x0000557bc9732a67 in sym_calc_visibility (sym=0x557bcb6cf0e0) at scripts/kconfig/symbol.c:211 #16 0x0000557bc97332f3 in sym_calc_value (sym=0x557bcb6cf0e0) at scripts/kconfig/symbol.c:443 #17 0x0000557bc97287ec in expr_calc_value (e=0x557bcc6a7270) at scripts/kconfig/expr.c:1014 #18 0x0000557bc972880e in expr_calc_value (e=0x557bcc6a7290) at scripts/kconfig/expr.c:1017 #19 0x0000557bc972885f in expr_calc_value (e=0x557bcc6a72b0) at scripts/kconfig/expr.c:1022 #20 0x0000557bc972884a in expr_calc_value (e=0x557bcc6b1bf0) at scripts/kconfig/expr.c:1021 #21 0x0000557bc972884a in expr_calc_value (e=0x557bcc6b5c70) at scripts/kconfig/expr.c:1021 #22 0x0000557bc972884a in expr_calc_value (e=0x557bcc6cf2d0) at scripts/kconfig/expr.c:1021 #23 0x0000557bc972884a in expr_calc_value (e=0x557bcc6fc0f0) at scripts/kconfig/expr.c:1021 #24 0x0000557bc972884a in expr_calc_value (e=0x557bcc726130) at scripts/kconfig/expr.c:1021 #25 0x0000557bc972884a in expr_calc_value (e=0x557bcc726170) at scripts/kconfig/expr.c:1021 #26 0x0000557bc972884a in expr_calc_value (e=0x557bcc7262f0) at scripts/kconfig/expr.c:1021 #27 0x0000557bc972884a in expr_calc_value (e=0x557bcc73bb30) at scripts/kconfig/expr.c:1021 #28 0x0000557bc9732ba7 in sym_calc_visibility (sym=0x557bca718350) at scripts/kconfig/symbol.c:234 #29 0x0000557bc97332f3 in sym_calc_value (sym=0x557bca718350) at scripts/kconfig/symbol.c:443 #30 0x0000557bc97287ec in expr_calc_value (e=0x557bcc725e10) at scripts/kconfig/expr.c:1014 #31 0x0000557bc9732a67 in sym_calc_visibility (sym=0x557bcb737420) at scripts/kconfig/symbol.c:211 #32 0x0000557bc97332f3 in sym_calc_value (sym=0x557bcb737420) at scripts/kconfig/symbol.c:443 #33 0x0000557bc9724718 in conf_read (name=0x0) at scripts/kconfig/confdata.c:492 #34 0x0000557bc9722f6e in main (ac=3, av=0x7ffe09eadc08) at scripts/kconfig/conf.c:733 Additional details: Host: Linux 6.1.0-25-amd64 Debian Bookworm HOSTCC: gcc --version: gcc (Debian 12.2.0-14) 12.2.0 CC: powerpc-linux-gcc --version: powerpc-linux-gcc (GCC) 12.2.0 (from https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/) Full bisect run log: # bad: [8400291e289ee6b2bf9779ff1c83a291501f017b] Linux 6.11-rc1 # good: [0c3836482481200ead7b416ca80c68a29cfdaabd] Linux 6.10 git bisect start 'v6.11-rc1' 'v6.10' # good: [280e36f0d5b997173d014c07484c03a7f7750668] nsfs: use cleanup guard git bisect good 280e36f0d5b997173d014c07484c03a7f7750668 # good: [a4f9285520584977127946a22eab2adfbc87d1bf] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux git bisect good a4f9285520584977127946a22eab2adfbc87d1bf # good: [2c9b3512402ed192d1f43f4531fb5da947e72bd0] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm git bisect good 2c9b3512402ed192d1f43f4531fb5da947e72bd0 # good: [6dc2e98d5f1de162d1777aee97e59d75d70d07c5] s390: Remove protvirt and kvm config guards for uv code git bisect good 6dc2e98d5f1de162d1777aee97e59d75d70d07c5 # bad: [c2a96b7f187fb6a455836d4a6e113947ff11de97] Merge tag 'driver-core-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core git bisect bad c2a96b7f187fb6a455836d4a6e113947ff11de97 # bad: [786c8248dbd33a5a7a07f7c6e55a7bfc68d2ca48] Merge tag 'perf-tools-fixes-for-v6.11-2024-07-23' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools git bisect bad 786c8248dbd33a5a7a07f7c6e55a7bfc68d2ca48 # good: [643af93f15be901982b2b08f241263934201c99f] Merge tag 'rpmsg-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux git bisect good 643af93f15be901982b2b08f241263934201c99f # bad: [bde6fb37bbc3a41eb63b1e4d06e2ff217d4a2f18] kallsyms: avoid repeated calculation of array size for markers git bisect bad bde6fb37bbc3a41eb63b1e4d06e2ff217d4a2f18 # bad: [b139b43e9d47552b3f998fade184ed19e45d0c32] kconfig: use sym_get_choice_menu() in sym_check_deps() git bisect bad b139b43e9d47552b3f998fade184ed19e45d0c32 # good: [bd988e7cb84a7f27e8ec100c5f68498b7d4fa69c] kconfig: introduce choice_set_value() helper git bisect good bd988e7cb84a7f27e8ec100c5f68498b7d4fa69c # bad: [f79dc03fe68c79d388908182e68d702f7f1786bc] kconfig: refactor choice value calculation git bisect bad f79dc03fe68c79d388908182e68d702f7f1786bc # good: [7308bf8a2c3d008f3662eaa3b4c3bbe55852d6c6] modpost: Enable section warning from *driver to .exit.text git bisect good 7308bf8a2c3d008f3662eaa3b4c3bbe55852d6c6 # good: [17c31aded9a1ee87e37f0ea0e3737797ef3f8c97] scripts/make_fit: Support decomposing DTBs git bisect good 17c31aded9a1ee87e37f0ea0e3737797ef3f8c97 # good: [ee29e6204c32dce013ac6d1078d98dce5607ce86] kconfig: import list_move(_tail) and list_for_each_entry_reverse macros git bisect good ee29e6204c32dce013ac6d1078d98dce5607ce86 # first bad commit: [f79dc03fe68c79d388908182e68d702f7f1786bc] kconfig: refactor choice value calculation Let me know if any additional information is needed. Happy to help. -- Marco Bonelli