* [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9
@ 2026-10-10 15:11 Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig Titouan Christophe via buildroot
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
The following commits update the kconfig infrastructure to a recent version,
and add support for Zephyr's kconfiglib, thanks to the update that make
our Config.in files syntactically compatible.
This is a major overhaul to the previous attempt at updating Buildroot's
kconfig infrastructure [1]. Compared to the previous iteration, this series
targets the latest kernel version to date (7.2.9), instead of 6.9 at the time.
Since more changes have happened upstream inbetween those versions, more
changes have had to be applied here.
Given all these changes, I re-started the series from scratch, while keeping
in mind the reviews that were made in the previous attempts.
- Patch 0001 has been taken as-is from the former series
- Patch 0007 has been slightly updated from the former series
- All the other patches are new
Hence why it is posted a brand new series rather than a new version of it.
As a disclaimer, I made heavy use of AI for this new iteration.
[1] https://patchwork.buildroot.org/project/buildroot/list/?series=13&state=*
Titouan Christophe (7):
Makefile: always use a base config file for defconfig
*/Config.in: use the new $(VAR) syntax
*/Config.in: replace bool entries with prompt within all choices
support/kconfig: update to kconfig from Linux 7.2.9
package/openssl: move libopenssl/libressl options out of the choice
docs/manual: add migration notes for changes in the kconfig syntax
Makefile: add new target "yellowconfig" based on kconfiglib
Config.in | 71 +-
Config.in.legacy | 6 +-
Makefile | 8 +-
boot/xilinx-prebuilt/Config.in | 2 +-
docs/manual/customize-outside-br.adoc | 12 +-
docs/manual/migrating.adoc | 13 +
docs/manual/quickstart.adoc | 7 +
fs/ext2/Config.in | 2 +-
linux/Config.ext.in | 2 +-
package/amlogic-boot-fip/Config.in.host | 2 +-
package/arm-gnu-toolchain/Config.in.host | 4 +-
package/docker-engine/Config.in | 2 +-
package/efl/Config.in | 2 +-
package/erlang/Config.in | 6 +-
package/flutter-sdk-bin/Config.in.host | 2 +-
package/freescale-imx/firmware-imx/Config.in | 2 +-
package/go/Config.in.host | 4 +-
package/go/go-bin/Config.in.host | 12 +-
package/go/go-bootstrap-stage1/Config.in.host | 6 +-
package/google-breakpad/Config.in.host | 12 +-
package/jpeg/Config.in | 2 +-
package/kvm-unit-tests/Config.in | 2 +-
package/libopenssl/Config.in | 4 -
package/libressl/Config.in | 4 -
package/linux-headers/Config.in.host | 2 +-
package/luajit/Config.in | 4 +-
package/mono/Config.in | 4 +-
package/nodejs/Config.in.host | 8 +-
package/openjdk/Config.in | 4 +-
package/openssl/Config.in | 14 +-
package/podman/Config.in | 4 +-
package/protobuf/Config.in | 22 +-
package/qt5/qt5webengine/Config.in | 2 +-
package/rustc/Config.in.host | 16 +-
package/sam-ba/Config.in.host | 2 +-
package/supertuxkart/Config.in | 4 +-
package/ti-cgt-pru/Config.in.host | 2 +-
package/ti-gfx/Config.in | 2 +-
package/wine/Config.in | 6 +-
package/xenomai/Config.in | 2 +-
support/kconfig/Makefile | 382 +-
support/kconfig/Makefile.br | 80 +-
support/kconfig/POTFILES.in | 12 -
support/kconfig/README.buildroot | 14 +-
support/kconfig/check.sh | 14 -
support/kconfig/conf.c | 587 ++-
support/kconfig/confdata.c | 1621 ++++---
support/kconfig/expr.c | 641 +--
support/kconfig/expr.h | 119 +-
support/kconfig/foo.h | 12 -
support/kconfig/gconf-cfg.sh | 28 +
support/kconfig/gconf.c | 1837 ++++----
support/kconfig/{gconf.glade => gconf.ui} | 361 +-
support/kconfig/icons/back.xpm | 29 +
support/kconfig/icons/choice_no.xpm | 18 +
support/kconfig/icons/choice_yes.xpm | 18 +
support/kconfig/icons/load.xpm | 31 +
support/kconfig/icons/menu.xpm | 18 +
support/kconfig/icons/menuback.xpm | 18 +
support/kconfig/icons/save.xpm | 31 +
support/kconfig/icons/single_view.xpm | 28 +
support/kconfig/icons/split_view.xpm | 28 +
support/kconfig/icons/symbol_mod.xpm | 18 +
support/kconfig/icons/symbol_no.xpm | 18 +
support/kconfig/icons/symbol_yes.xpm | 18 +
support/kconfig/icons/tree_view.xpm | 28 +
support/kconfig/images.c | 326 --
support/kconfig/include/array_size.h | 11 +
support/kconfig/include/hash.h | 28 +
support/kconfig/include/hashtable.h | 98 +
support/kconfig/include/list.h | 428 ++
support/kconfig/include/list_types.h | 17 +
support/kconfig/include/xalloc.h | 53 +
support/kconfig/internal.h | 27 +
support/kconfig/kconf_id.c | 53 -
support/kconfig/kconfig-sym-check.pl | 132 +
support/kconfig/kxgettext.c | 235 -
support/kconfig/lexer.l | 461 ++
support/kconfig/lexer.lex.c_shipped | 4130 +++++++++++++++++
support/kconfig/list.h | 132 -
support/kconfig/lkc.h | 159 +-
support/kconfig/lkc_proto.h | 47 +-
support/kconfig/lxdialog/.gitignore | 4 -
support/kconfig/lxdialog/BIG.FAT.WARNING | 2 +-
support/kconfig/lxdialog/check-lxdialog.sh | 93 -
support/kconfig/lxdialog/checklist.c | 26 +-
support/kconfig/lxdialog/dialog.h | 76 +-
support/kconfig/lxdialog/inputbox.c | 27 +-
support/kconfig/lxdialog/menubox.c | 35 +-
support/kconfig/lxdialog/textbox.c | 330 +-
support/kconfig/lxdialog/util.c | 53 +-
support/kconfig/lxdialog/yesno.c | 21 +-
support/kconfig/mconf-cfg.sh | 57 +
support/kconfig/mconf.c | 641 ++-
support/kconfig/menu.c | 573 +--
support/kconfig/merge_config.sh | 311 +-
support/kconfig/mnconf-common.c | 53 +
support/kconfig/mnconf-common.h | 20 +
support/kconfig/nconf-cfg.sh | 56 +
support/kconfig/nconf.c | 417 +-
support/kconfig/nconf.gui.c | 345 +-
support/kconfig/nconf.h | 62 +-
support/kconfig/parser.tab.c_shipped | 2248 +++++++++
support/kconfig/parser.tab.h_shipped | 134 +
support/kconfig/parser.y | 798 ++++
.../01-kconfig-kernel-to-buildroot.patch | 101 +-
.../06-br-build-system-integration.patch | 74 -
.../kconfig/patches/10-br-build-system.patch | 108 +-
.../patches/11-use-mktemp-for-lxdialog.patch | 17 -
.../patches/12-fix-glade-file-path.patch | 46 +-
.../14-support-out-of-tree-config.patch | 207 -
.../16-fix-space-to-de-select-options.patch | 41 -
.../kconfig/patches/17-backport-kecho.patch | 26 -
...fig.sh-create-temporary-files-in-tmp.patch | 6 +-
...e_config.sh-add-br2-external-support.patch | 20 +-
...fig.sh-Allow-to-define-config-prefix.patch | 31 -
...-positive-matches-from-comment-lines.patch | 32 -
...config-lxdialog-fix-check-with-GCC14.patch | 43 -
...onfig-mn-conf-handle-backspace-H-key.patch | 62 -
...4-kconfig-allow-source-inside-choice.patch | 28 +
support/kconfig/patches/series | 10 +-
support/kconfig/preprocess.c | 581 +++
support/kconfig/preprocess.h | 19 +
support/kconfig/qconf-cfg.sh | 42 +
support/kconfig/qconf.cc | 1305 +++---
support/kconfig/qconf.h | 183 +-
support/kconfig/streamline_config.pl | 124 +-
support/kconfig/symbol.c | 790 ++--
support/kconfig/util.c | 162 +-
support/kconfig/zconf.l | 372 --
support/kconfig/zconf.lex.c_shipped | 2500 ----------
support/kconfig/zconf.tab.c_shipped | 2488 ----------
support/kconfig/zconf.y | 782 ----
support/scripts/gen-bootlin-toolchains | 2 +-
.../br2-external/detect-bad-arch/Config.in | 2 +-
.../br2-external/flat-stacksize/Config.in | 2 +-
.../core/test_selinux/br2_external/Config.in | 2 +-
.../br2-external/clang-compiler-rt/Config.in | 2 +-
.../br2-external/gumbo-parser/Config.in | 2 +-
.../package/br2-external/openjdk/Config.in | 4 +-
.../package/br2-external/polkit/Config.in | 2 +-
.../br2-external/python-pybind/Config.in | 2 +-
system/Config.in | 10 +-
toolchain/toolchain-external/Config.in | 2 +-
.../Config.in | 2 +-
.../toolchain-external-arm-aarch64/Config.in | 2 +-
.../toolchain-external-arm-arm/Config.in | 2 +-
.../toolchain-external-bootlin/Config.in | 2 +-
.../Config.in.options | 2 +-
.../Config.in.options | 6 +-
150 files changed, 15366 insertions(+), 13897 deletions(-)
delete mode 100644 support/kconfig/POTFILES.in
delete mode 100755 support/kconfig/check.sh
delete mode 100644 support/kconfig/foo.h
create mode 100755 support/kconfig/gconf-cfg.sh
rename support/kconfig/{gconf.glade => gconf.ui} (57%)
create mode 100644 support/kconfig/icons/back.xpm
create mode 100644 support/kconfig/icons/choice_no.xpm
create mode 100644 support/kconfig/icons/choice_yes.xpm
create mode 100644 support/kconfig/icons/load.xpm
create mode 100644 support/kconfig/icons/menu.xpm
create mode 100644 support/kconfig/icons/menuback.xpm
create mode 100644 support/kconfig/icons/save.xpm
create mode 100644 support/kconfig/icons/single_view.xpm
create mode 100644 support/kconfig/icons/split_view.xpm
create mode 100644 support/kconfig/icons/symbol_mod.xpm
create mode 100644 support/kconfig/icons/symbol_no.xpm
create mode 100644 support/kconfig/icons/symbol_yes.xpm
create mode 100644 support/kconfig/icons/tree_view.xpm
delete mode 100644 support/kconfig/images.c
create mode 100644 support/kconfig/include/array_size.h
create mode 100644 support/kconfig/include/hash.h
create mode 100644 support/kconfig/include/hashtable.h
create mode 100644 support/kconfig/include/list.h
create mode 100644 support/kconfig/include/list_types.h
create mode 100644 support/kconfig/include/xalloc.h
create mode 100644 support/kconfig/internal.h
delete mode 100644 support/kconfig/kconf_id.c
create mode 100755 support/kconfig/kconfig-sym-check.pl
delete mode 100644 support/kconfig/kxgettext.c
create mode 100644 support/kconfig/lexer.l
create mode 100644 support/kconfig/lexer.lex.c_shipped
delete mode 100644 support/kconfig/list.h
delete mode 100644 support/kconfig/lxdialog/.gitignore
delete mode 100755 support/kconfig/lxdialog/check-lxdialog.sh
create mode 100755 support/kconfig/mconf-cfg.sh
create mode 100644 support/kconfig/mnconf-common.c
create mode 100644 support/kconfig/mnconf-common.h
create mode 100755 support/kconfig/nconf-cfg.sh
create mode 100644 support/kconfig/parser.tab.c_shipped
create mode 100644 support/kconfig/parser.tab.h_shipped
create mode 100644 support/kconfig/parser.y
delete mode 100644 support/kconfig/patches/06-br-build-system-integration.patch
delete mode 100644 support/kconfig/patches/11-use-mktemp-for-lxdialog.patch
delete mode 100644 support/kconfig/patches/14-support-out-of-tree-config.patch
delete mode 100644 support/kconfig/patches/16-fix-space-to-de-select-options.patch
delete mode 100644 support/kconfig/patches/17-backport-kecho.patch
delete mode 100644 support/kconfig/patches/20-merge_config.sh-Allow-to-define-config-prefix.patch
delete mode 100644 support/kconfig/patches/21-Avoid-false-positive-matches-from-comment-lines.patch
delete mode 100644 support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch
delete mode 100644 support/kconfig/patches/23-kconfig-mn-conf-handle-backspace-H-key.patch
create mode 100644 support/kconfig/patches/24-kconfig-allow-source-inside-choice.patch
create mode 100644 support/kconfig/preprocess.c
create mode 100644 support/kconfig/preprocess.h
create mode 100755 support/kconfig/qconf-cfg.sh
delete mode 100644 support/kconfig/zconf.l
delete mode 100644 support/kconfig/zconf.lex.c_shipped
delete mode 100644 support/kconfig/zconf.tab.c_shipped
delete mode 100644 support/kconfig/zconf.y
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 2/7] */Config.in: use the new $(VAR) syntax Titouan Christophe via buildroot
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
Currently, our bundled kconfig copy does not require that a base
configuration file, with some non-default set in there, be specified
for defconfig, and we only pass one if specified by the user.
Future kconfig versions will require a base config file be always
specified, so prepare for that: if the user did not specify a base
config file, use /dev/null, an empty file, to specify there is no
preset value.
Reported-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 490f1d419d..7fa3ce4890 100644
--- a/Makefile
+++ b/Makefile
@@ -1044,7 +1044,7 @@ oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmake
@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
- @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --defconfig=$(or $(DEFCONFIG),/dev/null) $(CONFIG_CONFIG_IN)
%_defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@defconfig=$(or \
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 2/7] */Config.in: use the new $(VAR) syntax
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 3/7] */Config.in: replace bool entries with prompt within all choices Titouan Christophe via buildroot
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
Since upstream Linux commit 104daea149 [1], the syntax for Kconfig variable
references requires to enclose them in $(VAR).
Variables whose expansion should be deferred until makefile evaluation
(such as TOPDIR, BASE_DIR, CONFIG_DIR or ARCH) must now be written as
\$(VAR).
Finally, the `option env=` syntax will no longer be supported.
Environment variables are directly expanded in KConfig files.
Therefore, some intermediate variables that were used as "tricks" can be
removed and their usage subsituted with the actual environment variable
they were derived from. This changes the following:
BR2_VERSION --> BR2_VERSION_FULL
BR2_HOSTARCH --> HOSTARCH
BR2_SKIP_LEGACY --> SKIP_LEGACY
BR2_BASE_DIR --> BASE_DIR
BR2_HOST_GCC_VERSION --> HOST_GCC_VERSION
BR2_DEFCONFIG_FROM_ENV --> BR2_DEFCONFIG
Also update the manual to reflect these new conventions
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=104daea149c45cc84842ce77a9bd6436d19f3dd8
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
Config.in | 63 +++++++------------
Config.in.legacy | 6 +-
docs/manual/customize-outside-br.adoc | 12 ++--
linux/Config.ext.in | 2 +-
package/amlogic-boot-fip/Config.in.host | 2 +-
package/arm-gnu-toolchain/Config.in.host | 4 +-
package/erlang/Config.in | 6 +-
package/flutter-sdk-bin/Config.in.host | 2 +-
package/go/Config.in.host | 4 +-
package/go/go-bin/Config.in.host | 12 ++--
package/go/go-bootstrap-stage1/Config.in.host | 6 +-
package/google-breakpad/Config.in.host | 12 ++--
package/jpeg/Config.in | 2 +-
package/kvm-unit-tests/Config.in | 2 +-
package/luajit/Config.in | 4 +-
package/mono/Config.in | 4 +-
package/nodejs/Config.in.host | 8 +--
package/openjdk/Config.in | 4 +-
package/openssl/Config.in | 2 +-
package/protobuf/Config.in | 22 +++----
package/qt5/qt5webengine/Config.in | 2 +-
package/rustc/Config.in.host | 16 ++---
package/sam-ba/Config.in.host | 2 +-
package/supertuxkart/Config.in | 4 +-
package/ti-cgt-pru/Config.in.host | 2 +-
package/ti-gfx/Config.in | 2 +-
package/wine/Config.in | 6 +-
support/scripts/gen-bootlin-toolchains | 2 +-
.../br2-external/detect-bad-arch/Config.in | 2 +-
.../br2-external/flat-stacksize/Config.in | 2 +-
.../core/test_selinux/br2_external/Config.in | 2 +-
.../br2-external/clang-compiler-rt/Config.in | 2 +-
.../br2-external/gumbo-parser/Config.in | 2 +-
.../package/br2-external/openjdk/Config.in | 4 +-
.../package/br2-external/polkit/Config.in | 2 +-
.../br2-external/python-pybind/Config.in | 2 +-
system/Config.in | 4 +-
toolchain/toolchain-external/Config.in | 2 +-
.../Config.in | 2 +-
.../toolchain-external-arm-aarch64/Config.in | 2 +-
.../toolchain-external-arm-arm/Config.in | 2 +-
.../toolchain-external-bootlin/Config.in | 2 +-
.../Config.in.options | 2 +-
.../Config.in.options | 2 +-
44 files changed, 113 insertions(+), 138 deletions(-)
diff --git a/Config.in b/Config.in
index ac58c685d1..1fa7ea3ca7 100644
--- a/Config.in
+++ b/Config.in
@@ -1,6 +1,6 @@
#
-mainmenu "Buildroot $BR2_VERSION Configuration"
+mainmenu "Buildroot $(BR2_VERSION_FULL) Configuration"
config BR2_HAVE_DOT_CONFIG
bool
@@ -17,85 +17,68 @@ config BR2_BROKEN
config BR2_HIDE_SECONDARY_TARGET_OPTIONS
bool
- option env="BR2_HIDE_SECONDARY_TARGET_OPTIONS"
-
-config BR2_VERSION
- string
- option env="BR2_VERSION_FULL"
-
-config BR2_HOSTARCH
- string
- option env="HOSTARCH"
-
-config BR2_BASE_DIR
- string
- option env="BASE_DIR"
+ default y if "$(BR2_HIDE_SECONDARY_TARGET_OPTIONS)" = "y"
# br2-external paths definitions
-source "$BR2_BASE_DIR/.br2-external.in.paths"
-
-# Hidden config symbols for packages to check system gcc version
-config BR2_HOST_GCC_VERSION
- string
- option env="HOST_GCC_VERSION"
+source "$(BASE_DIR)/.br2-external.in.paths"
config BR2_HOST_GCC_AT_LEAST_4_9
bool
- default y if BR2_HOST_GCC_VERSION = "4 9"
+ default y if "$(HOST_GCC_VERSION)" = "4 9"
config BR2_HOST_GCC_AT_LEAST_5
bool
- default y if BR2_HOST_GCC_VERSION = "5"
+ default y if "$(HOST_GCC_VERSION)" = "5"
select BR2_HOST_GCC_AT_LEAST_4_9
config BR2_HOST_GCC_AT_LEAST_6
bool
- default y if BR2_HOST_GCC_VERSION = "6"
+ default y if "$(HOST_GCC_VERSION)" = "6"
select BR2_HOST_GCC_AT_LEAST_5
config BR2_HOST_GCC_AT_LEAST_7
bool
- default y if BR2_HOST_GCC_VERSION = "7"
+ default y if "$(HOST_GCC_VERSION)" = "7"
select BR2_HOST_GCC_AT_LEAST_6
config BR2_HOST_GCC_AT_LEAST_8
bool
- default y if BR2_HOST_GCC_VERSION = "8"
+ default y if "$(HOST_GCC_VERSION)" = "8"
select BR2_HOST_GCC_AT_LEAST_7
config BR2_HOST_GCC_AT_LEAST_9
bool
- default y if BR2_HOST_GCC_VERSION = "9"
+ default y if "$(HOST_GCC_VERSION)" = "9"
select BR2_HOST_GCC_AT_LEAST_8
config BR2_HOST_GCC_AT_LEAST_10
bool
- default y if BR2_HOST_GCC_VERSION = "10"
+ default y if "$(HOST_GCC_VERSION)" = "10"
select BR2_HOST_GCC_AT_LEAST_9
config BR2_HOST_GCC_AT_LEAST_11
bool
- default y if BR2_HOST_GCC_VERSION = "11"
+ default y if "$(HOST_GCC_VERSION)" = "11"
select BR2_HOST_GCC_AT_LEAST_10
config BR2_HOST_GCC_AT_LEAST_12
bool
- default y if BR2_HOST_GCC_VERSION = "12"
+ default y if "$(HOST_GCC_VERSION)" = "12"
select BR2_HOST_GCC_AT_LEAST_11
config BR2_HOST_GCC_AT_LEAST_13
bool
- default y if BR2_HOST_GCC_VERSION = "13"
+ default y if "$(HOST_GCC_VERSION)" = "13"
select BR2_HOST_GCC_AT_LEAST_12
config BR2_HOST_GCC_AT_LEAST_14
bool
- default y if BR2_HOST_GCC_VERSION = "14"
+ default y if "$(HOST_GCC_VERSION)" = "14"
select BR2_HOST_GCC_AT_LEAST_13
config BR2_HOST_GCC_AT_LEAST_15
bool
- default y if BR2_HOST_GCC_VERSION = "15"
+ default y if "$(HOST_GCC_VERSION)" = "15"
select BR2_HOST_GCC_AT_LEAST_14
# When adding new entries above, be sure to update
@@ -222,21 +205,17 @@ config BR2_TAR_OPTIONS
endmenu
-config BR2_DEFCONFIG_FROM_ENV
- string
- option env="BR2_DEFCONFIG"
-
config BR2_DEFCONFIG
string "Location to save buildroot config"
- default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
- default "$(CONFIG_DIR)/defconfig"
+ default "$(BR2_DEFCONFIG)" if "$(BR2_DEFCONFIG)" != ""
+ default "\$(CONFIG_DIR)/defconfig"
help
When running 'make savedefconfig', the defconfig file will be
saved in this location.
config BR2_DL_DIR
string "Download dir"
- default "$(TOPDIR)/dl"
+ default "\$(TOPDIR)/dl"
help
Directory to store all the source files that we need to fetch.
If the Linux shell environment has defined the BR2_DL_DIR
@@ -250,7 +229,7 @@ config BR2_DL_DIR
config BR2_HOST_DIR
string "Host dir"
- default "$(BASE_DIR)/host"
+ default "\$(BASE_DIR)/host"
help
Directory to store all the binary files that are built for the
host. This includes the cross compilation toolchain when
@@ -708,7 +687,7 @@ endchoice
config BR2_PACKAGE_OVERRIDE_FILE
string "location of a package override file"
- default "$(CONFIG_DIR)/local.mk"
+ default "\$(CONFIG_DIR)/local.mk"
help
A package override file is a short makefile that contains
variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
@@ -1025,4 +1004,4 @@ source "package/Config.in.host"
source "Config.in.legacy"
# br2-external menus definitions
-source "$BR2_BASE_DIR/.br2-external.in.menus"
+source "$(BASE_DIR)/.br2-external.in.menus"
diff --git a/Config.in.legacy b/Config.in.legacy
index 9ba6ab243e..0e4fb469b2 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -90,11 +90,7 @@
#
# [End of example]
-config BR2_SKIP_LEGACY
- bool
- option env="SKIP_LEGACY"
-
-if !BR2_SKIP_LEGACY
+if "$(SKIP_LEGACY)" = ""
config BR2_LEGACY
bool
diff --git a/docs/manual/customize-outside-br.adoc b/docs/manual/customize-outside-br.adoc
index 8a76f3a998..ab9557923b 100644
--- a/docs/manual/customize-outside-br.adoc
+++ b/docs/manual/customize-outside-br.adoc
@@ -154,8 +154,8 @@ The main usage of this is to store package recipes. The recommended way
to do this is to write a +Config.in+ file that looks like:
----
-source "$BR2_EXTERNAL_BAR_42_PATH/package/package1/Config.in"
-source "$BR2_EXTERNAL_BAR_42_PATH/package/package2/Config.in"
+source "$(BR2_EXTERNAL_BAR_42_PATH)/package/package1/Config.in"
+source "$(BR2_EXTERNAL_BAR_42_PATH)/package/package2/Config.in"
----
Then, have an +external.mk+ file that looks like:
@@ -244,10 +244,10 @@ illustration, of course):
| `----
|
|- Config.in
- | |source "$BR2_EXTERNAL_BAR_42_PATH/toolchain/toolchain-external-mine/Config.in.options"
- | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-1/Config.in"
- | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-2/Config.in"
- | |source "$BR2_EXTERNAL_BAR_42_PATH/package/my-jpeg/Config.in"
+ | |source "$(BR2_EXTERNAL_BAR_42_PATH)/toolchain/toolchain-external-mine/Config.in.options"
+ | |source "$(BR2_EXTERNAL_BAR_42_PATH)/package/pkg-1/Config.in"
+ | |source "$(BR2_EXTERNAL_BAR_42_PATH)/package/pkg-2/Config.in"
+ | |source "$(BR2_EXTERNAL_BAR_42_PATH)/package/my-jpeg/Config.in"
| |
| |config BAR_42_FLASH_ADDR
| | hex "my-board flash address"
diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index 3b72d3cf60..adc9c5c5a4 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -56,6 +56,6 @@ config BR2_LINUX_KERNEL_EXT_RTAI
RTAI Kernel part.
# kernel extensions from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.linux"
+source "$(BASE_DIR)/.br2-external.in.linux"
endmenu
diff --git a/package/amlogic-boot-fip/Config.in.host b/package/amlogic-boot-fip/Config.in.host
index bccc6296d1..54f4075f27 100644
--- a/package/amlogic-boot-fip/Config.in.host
+++ b/package/amlogic-boot-fip/Config.in.host
@@ -1,6 +1,6 @@
config BR2_PACKAGE_HOST_AMLOGIC_BOOT_FIP
bool "host amlogic-boot-fip"
- depends on BR2_HOSTARCH = "x86_64"
+ depends on "$(HOSTARCH)" = "x86_64"
help
Firmware Image Package (FIP) sources used to sign Amlogic
u-boot binaries in LibreELEC images
diff --git a/package/arm-gnu-toolchain/Config.in.host b/package/arm-gnu-toolchain/Config.in.host
index de8ff8c005..7afb5c4873 100644
--- a/package/arm-gnu-toolchain/Config.in.host
+++ b/package/arm-gnu-toolchain/Config.in.host
@@ -1,4 +1,4 @@
config BR2_PACKAGE_HOST_ARM_GNU_TOOLCHAIN_SUPPORTS
bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "x86_64"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "x86_64"
diff --git a/package/erlang/Config.in b/package/erlang/Config.in
index 724f91123b..f3830cefad 100644
--- a/package/erlang/Config.in
+++ b/package/erlang/Config.in
@@ -1,8 +1,8 @@
config BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "x86_64"
- default y if BR2_HOSTARCH = "x86"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "x86_64"
+ default y if "$(HOSTARCH)" = "x86"
config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
bool
diff --git a/package/flutter-sdk-bin/Config.in.host b/package/flutter-sdk-bin/Config.in.host
index 181a2ee6e5..c1c97e2ca8 100644
--- a/package/flutter-sdk-bin/Config.in.host
+++ b/package/flutter-sdk-bin/Config.in.host
@@ -1,6 +1,6 @@
config BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "x86_64"
+ default y if "$(HOSTARCH)" = "x86_64"
config BR2_PACKAGE_HOST_FLUTTER_SDK_BIN
bool "host flutter-sdk-bin"
diff --git a/package/go/Config.in.host b/package/go/Config.in.host
index 47c7e5d075..fa991f3a91 100644
--- a/package/go/Config.in.host
+++ b/package/go/Config.in.host
@@ -45,8 +45,8 @@ config BR2_PACKAGE_HOST_GO_HOST_CGO_LINKING_SUPPORTS
default y if BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
default y if !BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
- depends on BR2_HOSTARCH != "mips64"
- depends on BR2_HOSTARCH != "mips64el"
+ depends on "$(HOSTARCH)" != "mips64"
+ depends on "$(HOSTARCH)" != "mips64el"
# Go packages should select BR2_PACKAGE_HOST_GO
config BR2_PACKAGE_HOST_GO
diff --git a/package/go/go-bin/Config.in.host b/package/go/go-bin/Config.in.host
index 6312c1b950..3e842e0ff7 100644
--- a/package/go/go-bin/Config.in.host
+++ b/package/go/go-bin/Config.in.host
@@ -1,12 +1,12 @@
# Translate the HOSTARCH into the architecture name used by the Go compiler
config BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH
string
- default "armv6l" if BR2_HOSTARCH = "arm"
- default "arm64" if BR2_HOSTARCH = "aarch64"
- default "ppc64le" if BR2_HOSTARCH = "powerpc64le"
- default "s390x" if BR2_HOSTARCH = "s390x"
- default "386" if BR2_HOSTARCH = "x86"
- default "amd64" if BR2_HOSTARCH = "x86_64"
+ default "armv6l" if "$(HOSTARCH)" = "arm"
+ default "arm64" if "$(HOSTARCH)" = "aarch64"
+ default "ppc64le" if "$(HOSTARCH)" = "powerpc64le"
+ default "s390x" if "$(HOSTARCH)" = "s390x"
+ default "386" if "$(HOSTARCH)" = "x86"
+ default "amd64" if "$(HOSTARCH)" = "x86_64"
config BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
bool
diff --git a/package/go/go-bootstrap-stage1/Config.in.host b/package/go/go-bootstrap-stage1/Config.in.host
index 56a743caf9..50caad0a8b 100644
--- a/package/go/go-bootstrap-stage1/Config.in.host
+++ b/package/go/go-bootstrap-stage1/Config.in.host
@@ -1,6 +1,6 @@
config BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE1_ARCH_SUPPORTS
bool
# See src/cmd/dist/unix.c for the list of supported architectures
- default y if BR2_HOSTARCH = "x86"
- default y if BR2_HOSTARCH = "x86_64"
- default y if BR2_HOSTARCH = "arm"
+ default y if "$(HOSTARCH)" = "x86"
+ default y if "$(HOSTARCH)" = "x86_64"
+ default y if "$(HOSTARCH)" = "arm"
diff --git a/package/google-breakpad/Config.in.host b/package/google-breakpad/Config.in.host
index 28d304766a..84e95957b2 100644
--- a/package/google-breakpad/Config.in.host
+++ b/package/google-breakpad/Config.in.host
@@ -1,8 +1,8 @@
config BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "x86_64"
- default y if BR2_HOSTARCH = "x86"
- default y if BR2_HOSTARCH = "arm"
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "mips"
- default y if BR2_HOSTARCH = "mipsel"
+ default y if "$(HOSTARCH)" = "x86_64"
+ default y if "$(HOSTARCH)" = "x86"
+ default y if "$(HOSTARCH)" = "arm"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "mips"
+ default y if "$(HOSTARCH)" = "mipsel"
diff --git a/package/jpeg/Config.in b/package/jpeg/Config.in
index 371f89aa49..0a7e01d28b 100644
--- a/package/jpeg/Config.in
+++ b/package/jpeg/Config.in
@@ -40,7 +40,7 @@ config BR2_PACKAGE_JPEG_TURBO
http://www.libjpeg-turbo.org
# libjpeg from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.jpeg"
+source "$(BASE_DIR)/.br2-external.in.jpeg"
endchoice
diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
index 817d3c4a8f..87e7125313 100644
--- a/package/kvm-unit-tests/Config.in
+++ b/package/kvm-unit-tests/Config.in
@@ -20,7 +20,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
# gcc 4.5 at least. on i386, we use the target gcc, while on
# x86-64 we use the host gcc (see .mk file for details)
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
- depends on BR2_HOSTARCH = "x86_64" || !BR2_x86_64
+ depends on "$(HOSTARCH)" = "x86_64" || !BR2_x86_64
select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64
help
kvm-unit-tests is a project as old as KVM. As its name
diff --git a/package/luajit/Config.in b/package/luajit/Config.in
index 31e9e0243e..408032c7e8 100644
--- a/package/luajit/Config.in
+++ b/package/luajit/Config.in
@@ -7,9 +7,9 @@ config BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
default y if BR2_powerpc
# -m32 flag is used for 32bit builds and host-luajit has
# limited architecture support
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
# Building for 64-bit target requires a 64-bit host
- depends on !BR2_ARCH_IS_64 || BR2_HOSTARCH = "x86_64"
+ depends on !BR2_ARCH_IS_64 || "$(HOSTARCH)" = "x86_64"
config BR2_PACKAGE_LUAJIT
bool "luajit"
diff --git a/package/mono/Config.in b/package/mono/Config.in
index 0152df8268..354dc56d24 100644
--- a/package/mono/Config.in
+++ b/package/mono/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "x86_64"
- default y if BR2_HOSTARCH = "x86"
+ default y if "$(HOSTARCH)" = "x86_64"
+ default y if "$(HOSTARCH)" = "x86"
config BR2_PACKAGE_MONO_ARCH_SUPPORTS
bool
diff --git a/package/nodejs/Config.in.host b/package/nodejs/Config.in.host
index a8ab89176c..a8b0f3997d 100644
--- a/package/nodejs/Config.in.host
+++ b/package/nodejs/Config.in.host
@@ -1,9 +1,9 @@
config BR2_PACKAGE_HOST_NODEJS_BIN_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "arm"
- default y if BR2_HOSTARCH = "ppc64le"
- default y if BR2_HOSTARCH = "x86_64"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "arm"
+ default y if "$(HOSTARCH)" = "ppc64le"
+ default y if "$(HOSTARCH)" = "x86_64"
comment "host nodejs needs a host gcc >= 8"
depends on !BR2_PACKAGE_HOST_NODEJS_BIN_ARCH_SUPPORTS
diff --git a/package/openjdk/Config.in b/package/openjdk/Config.in
index 022ded8dbb..bac5d6d986 100644
--- a/package/openjdk/Config.in
+++ b/package/openjdk/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "x86_64"
- default y if BR2_HOSTARCH = "aarch64"
+ default y if "$(HOSTARCH)" = "x86_64"
+ default y if "$(HOSTARCH)" = "aarch64"
# Taken from make/autoconf/platform.m4
config BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS
diff --git a/package/openssl/Config.in b/package/openssl/Config.in
index d255a05596..ca9d1a7e50 100644
--- a/package/openssl/Config.in
+++ b/package/openssl/Config.in
@@ -59,7 +59,7 @@ config BR2_PACKAGE_LIBRESSL
source "package/libressl/Config.in"
# openssl from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.openssl"
+source "$(BASE_DIR)/.br2-external.in.openssl"
endchoice
diff --git a/package/protobuf/Config.in b/package/protobuf/Config.in
index ae4044ea32..89d94d73c6 100644
--- a/package/protobuf/Config.in
+++ b/package/protobuf/Config.in
@@ -16,17 +16,17 @@
# host-protobuf only builds on certain architectures
config BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "arm"
- default y if BR2_HOSTARCH = "mips"
- default y if BR2_HOSTARCH = "mipsel"
- default y if BR2_HOSTARCH = "powerpc"
- default y if BR2_HOSTARCH = "powerpc64"
- default y if BR2_HOSTARCH = "powerpc64le"
- default y if BR2_HOSTARCH = "sparc"
- default y if BR2_HOSTARCH = "sparc64"
- default y if BR2_HOSTARCH = "x86"
- default y if BR2_HOSTARCH = "x86_64"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "arm"
+ default y if "$(HOSTARCH)" = "mips"
+ default y if "$(HOSTARCH)" = "mipsel"
+ default y if "$(HOSTARCH)" = "powerpc"
+ default y if "$(HOSTARCH)" = "powerpc64"
+ default y if "$(HOSTARCH)" = "powerpc64le"
+ default y if "$(HOSTARCH)" = "sparc"
+ default y if "$(HOSTARCH)" = "sparc64"
+ default y if "$(HOSTARCH)" = "x86"
+ default y if "$(HOSTARCH)" = "x86_64"
config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
bool
diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
index 2c16d819d2..d40d007ed4 100644
--- a/package/qt5/qt5webengine/Config.in
+++ b/package/qt5/qt5webengine/Config.in
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS
BR2_mips || BR2_mips64
# -m32 flag is used for 32bit builds and host tools have
# limited architecture support
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
depends on !BR2_BINFMT_FLAT # qt5base-icu
depends on BR2_USE_MMU # libglib2, qt5base-dbus
diff --git a/package/rustc/Config.in.host b/package/rustc/Config.in.host
index 6130b73921..4fd6e1979d 100644
--- a/package/rustc/Config.in.host
+++ b/package/rustc/Config.in.host
@@ -2,14 +2,14 @@
# When adding new entries below, update RUST_HOSTS in utils/update-rust
config BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "powerpc"
- default y if BR2_HOSTARCH = "powerpc64"
- default y if BR2_HOSTARCH = "powerpc64le"
- default y if BR2_HOSTARCH = "riscv64"
- default y if BR2_HOSTARCH = "s390x"
- default y if BR2_HOSTARCH = "x86"
- default y if BR2_HOSTARCH = "x86_64"
+ default y if "$(HOSTARCH)" = "aarch64"
+ default y if "$(HOSTARCH)" = "powerpc"
+ default y if "$(HOSTARCH)" = "powerpc64"
+ default y if "$(HOSTARCH)" = "powerpc64le"
+ default y if "$(HOSTARCH)" = "riscv64"
+ default y if "$(HOSTARCH)" = "s390x"
+ default y if "$(HOSTARCH)" = "x86"
+ default y if "$(HOSTARCH)" = "x86_64"
# The pre-built Rust standard library is only available for a number
# of architectures/C libraries combinations, with different levels of
diff --git a/package/sam-ba/Config.in.host b/package/sam-ba/Config.in.host
index cd11e8633e..9b2e2afb75 100644
--- a/package/sam-ba/Config.in.host
+++ b/package/sam-ba/Config.in.host
@@ -1,6 +1,6 @@
config BR2_PACKAGE_HOST_SAM_BA
bool "host sam-ba"
- depends on BR2_HOSTARCH = "x86_64"
+ depends on "$(HOSTARCH)" = "x86_64"
help
Atmel SAM-BA software provides an open set of tools for
programming the Atmel SAM3, SAM7 and SAM9 ARM-based
diff --git a/package/supertuxkart/Config.in b/package/supertuxkart/Config.in
index 0f6c244058..0aab4f9e9c 100644
--- a/package/supertuxkart/Config.in
+++ b/package/supertuxkart/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_SUPERTUXKART
bool "supertuxkart"
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
depends on BR2_i386 || BR2_x86_64
depends on BR2_USE_MMU # fork()
depends on BR2_INSTALL_LIBSTDCPP # openal
@@ -34,7 +34,7 @@ config BR2_PACKAGE_SUPERTUXKART
http://supertuxkart.sourceforge.net/Main_Page
comment "supertuxkart needs an OpenGL backend, a uClibc or glibc toolchain w/ NPTL, C++, gcc >= 9"
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
depends on BR2_i386 || BR2_x86_64
depends on BR2_USE_MMU
depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
diff --git a/package/ti-cgt-pru/Config.in.host b/package/ti-cgt-pru/Config.in.host
index eab3cd72d5..cf56854dd1 100644
--- a/package/ti-cgt-pru/Config.in.host
+++ b/package/ti-cgt-pru/Config.in.host
@@ -1,7 +1,7 @@
config BR2_PACKAGE_HOST_TI_CGT_PRU_ARCH_SUPPORTS
bool
default y
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
depends on BR2_arm
config BR2_PACKAGE_HOST_TI_CGT_PRU
diff --git a/package/ti-gfx/Config.in b/package/ti-gfx/Config.in
index 40f46335a3..093417fa21 100644
--- a/package/ti-gfx/Config.in
+++ b/package/ti-gfx/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_TI_GFX
bool "ti-gfx"
depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86"
select BR2_HOSTARCH_NEEDS_IA32_LIBS
select BR2_PACKAGE_HAS_LIBEGL
select BR2_PACKAGE_HAS_LIBGLES
diff --git a/package/wine/Config.in b/package/wine/Config.in
index 7a01ef6f7c..1fc760982e 100644
--- a/package/wine/Config.in
+++ b/package/wine/Config.in
@@ -2,9 +2,9 @@ config BR2_PACKAGE_WINE_ARCH_SUPPORTS
bool
default y
# Wine only builds on certain architectures
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" || \
- BR2_HOSTARCH = "powerpc" || BR2_HOSTARCH = "arm" || \
- BR2_HOSTARCH = "aarch64"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "x86" || \
+ "$(HOSTARCH)" = "powerpc" || "$(HOSTARCH)" = "arm" || \
+ "$(HOSTARCH)" = "aarch64"
# Wine has much CPU specific code and mostly makes sense on x86
depends on BR2_i386
diff --git a/support/scripts/gen-bootlin-toolchains b/support/scripts/gen-bootlin-toolchains
index ee64a86902..0fc87ed29d 100755
--- a/support/scripts/gen-bootlin-toolchains
+++ b/support/scripts/gen-bootlin-toolchains
@@ -505,7 +505,7 @@ def gen_config_in_options(toolchains, fpath):
f.write("if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN\n\n")
f.write("config BR2_TOOLCHAIN_EXTERNAL_PREFIX\n")
- f.write("\tdefault \"$(ARCH)-linux\"\n")
+ f.write("\tdefault \"\\$(ARCH)-linux\"\n")
f.write("\n")
diff --git a/support/testing/tests/core/br2-external/detect-bad-arch/Config.in b/support/testing/tests/core/br2-external/detect-bad-arch/Config.in
index 530c077bbe..579cbfa67d 100644
--- a/support/testing/tests/core/br2-external/detect-bad-arch/Config.in
+++ b/support/testing/tests/core/br2-external/detect-bad-arch/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_DETECT_BAD_ARCH_PATH/package/detect-bad-arch/Config.in"
+source "$(BR2_EXTERNAL_DETECT_BAD_ARCH_PATH)/package/detect-bad-arch/Config.in"
diff --git a/support/testing/tests/core/br2-external/flat-stacksize/Config.in b/support/testing/tests/core/br2-external/flat-stacksize/Config.in
index cdb4e9f057..e629b87cd7 100644
--- a/support/testing/tests/core/br2-external/flat-stacksize/Config.in
+++ b/support/testing/tests/core/br2-external/flat-stacksize/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_FLAT_STACKSIZE_PATH/package/flat-stacksize-test/Config.in"
+source "$(BR2_EXTERNAL_FLAT_STACKSIZE_PATH)/package/flat-stacksize-test/Config.in"
diff --git a/support/testing/tests/core/test_selinux/br2_external/Config.in b/support/testing/tests/core/test_selinux/br2_external/Config.in
index 9d9c84ee3c..bddbcb4938 100644
--- a/support/testing/tests/core/test_selinux/br2_external/Config.in
+++ b/support/testing/tests/core/test_selinux/br2_external/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_SELINUX_PATH/package/selinux-test/Config.in"
+source "$(BR2_EXTERNAL_SELINUX_PATH)/package/selinux-test/Config.in"
diff --git a/support/testing/tests/package/br2-external/clang-compiler-rt/Config.in b/support/testing/tests/package/br2-external/clang-compiler-rt/Config.in
index e1f9f8c598..e578a4c9c8 100644
--- a/support/testing/tests/package/br2-external/clang-compiler-rt/Config.in
+++ b/support/testing/tests/package/br2-external/clang-compiler-rt/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_CLANG_COMPILER_RT_PATH/package/libfuzzer/Config.in"
+source "$(BR2_EXTERNAL_CLANG_COMPILER_RT_PATH)/package/libfuzzer/Config.in"
diff --git a/support/testing/tests/package/br2-external/gumbo-parser/Config.in b/support/testing/tests/package/br2-external/gumbo-parser/Config.in
index 28a97c1dfe..63a4a301e3 100644
--- a/support/testing/tests/package/br2-external/gumbo-parser/Config.in
+++ b/support/testing/tests/package/br2-external/gumbo-parser/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_GUMBO_PARSER_PATH/package/gumbo-parser-test/Config.in"
+source "$(BR2_EXTERNAL_GUMBO_PARSER_PATH)/package/gumbo-parser-test/Config.in"
diff --git a/support/testing/tests/package/br2-external/openjdk/Config.in b/support/testing/tests/package/br2-external/openjdk/Config.in
index 2588b34054..cad25f7804 100644
--- a/support/testing/tests/package/br2-external/openjdk/Config.in
+++ b/support/testing/tests/package/br2-external/openjdk/Config.in
@@ -1,2 +1,2 @@
-source "$BR2_EXTERNAL_OPENJDK_PATH/package/openjdk-hello-world/Config.in"
-source "$BR2_EXTERNAL_OPENJDK_PATH/package/openjdk-jni-test/Config.in"
+source "$(BR2_EXTERNAL_OPENJDK_PATH)/package/openjdk-hello-world/Config.in"
+source "$(BR2_EXTERNAL_OPENJDK_PATH)/package/openjdk-jni-test/Config.in"
diff --git a/support/testing/tests/package/br2-external/polkit/Config.in b/support/testing/tests/package/br2-external/polkit/Config.in
index 2d11756193..1b4e421d1e 100644
--- a/support/testing/tests/package/br2-external/polkit/Config.in
+++ b/support/testing/tests/package/br2-external/polkit/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_POLKIT_PATH/package/polkit-rules-test/Config.in"
+source "$(BR2_EXTERNAL_POLKIT_PATH)/package/polkit-rules-test/Config.in"
diff --git a/support/testing/tests/package/br2-external/python-pybind/Config.in b/support/testing/tests/package/br2-external/python-pybind/Config.in
index 70c77157b3..f0cef44369 100644
--- a/support/testing/tests/package/br2-external/python-pybind/Config.in
+++ b/support/testing/tests/package/br2-external/python-pybind/Config.in
@@ -1 +1 @@
-source "$BR2_EXTERNAL_PYTHON_PYBIND_PATH/package/python-pybind-example/Config.in"
+source "$(BR2_EXTERNAL_PYTHON_PYBIND_PATH)/package/python-pybind-example/Config.in"
diff --git a/system/Config.in b/system/Config.in
index f4788cd72e..46a1cf5d59 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -20,7 +20,7 @@ config BR2_ROOTFS_SKELETON_CUSTOM
Use custom target skeleton.
# skeleton from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.skeleton"
+source "$(BASE_DIR)/.br2-external.in.skeleton"
endchoice
@@ -189,7 +189,7 @@ config BR2_INIT_NONE
or with a rootfs-overlay.
# Init systems from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.init"
+source "$(BASE_DIR)/.br2-external.in.init"
endchoice
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 9d8c815438..56c2ea7a3e 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -26,7 +26,7 @@ source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in"
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
# Toolchains from br2-external trees, if any
-source "$BR2_BASE_DIR/.br2-external.in.toolchains"
+source "$(BASE_DIR)/.br2-external.in.toolchains"
endchoice
diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in b/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
index c3592b9d20..ec489adac8 100644
--- a/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
@@ -1,7 +1,7 @@
config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE
bool "Arm AArch64 BE 15.2.rel1"
depends on BR2_aarch64_be
- depends on BR2_HOSTARCH = "x86_64"
+ depends on "$(HOSTARCH)" = "x86_64"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_16
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_SSP
diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
index ae1298bfe2..ac60c57aa6 100644
--- a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
@@ -1,7 +1,7 @@
config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64
bool "Arm AArch64 15.2.rel1"
depends on BR2_aarch64
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "aarch64"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "aarch64"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_16
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_SSP
diff --git a/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in b/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
index 992ba09518..982654ffa0 100644
--- a/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
@@ -7,7 +7,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM
depends on BR2_arm
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
depends on BR2_ARM_CPU_HAS_NEON
- depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "aarch64"
+ depends on "$(HOSTARCH)" = "x86_64" || "$(HOSTARCH)" = "aarch64"
depends on BR2_ARM_EABIHF
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_16
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
diff --git a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in
index 6552da9a84..1fa4fccb0f 100644
--- a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in
@@ -1,7 +1,7 @@
config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN
bool "Bootlin toolchains"
depends on BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
- depends on BR2_HOSTARCH = "x86_64"
+ depends on "$(HOSTARCH)" = "x86_64"
help
Bootlin toolchains are built using Buildroot for a large
number of architectures and C libraries configurations.
diff --git a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
index 81cb3f0a05..8dcb627956 100644
--- a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
@@ -49,7 +49,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
- default "$(ARCH)-linux"
+ default "\$(ARCH)-linux"
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
default "toolchain-external-bootlin"
diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
index 721fd272e0..92c1d6a37d 100644
--- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
@@ -23,7 +23,7 @@ config BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
string "Toolchain prefix"
- default "$(ARCH)-linux"
+ default "\$(ARCH)-linux"
help
Component name prefix used by your external toolchain.
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 3/7] */Config.in: replace bool entries with prompt within all choices
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 2/7] */Config.in: use the new $(VAR) syntax Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 5/7] package/openssl: move libopenssl/libressl options out of the choice Titouan Christophe via buildroot
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
Since Linux commit bea2c5ef78 [1], first released in v6.13, the prompt of a
choice must be given with "prompt" instead of "bool".
[1] bea2c5ef78: kconfig: remove support for "bool" prompt for choice entries
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bea2c5ef789a37bace99f2f45eeef3be4559b228
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
Config.in | 8 ++++----
boot/xilinx-prebuilt/Config.in | 2 +-
fs/ext2/Config.in | 2 +-
package/docker-engine/Config.in | 2 +-
package/efl/Config.in | 2 +-
package/freescale-imx/firmware-imx/Config.in | 2 +-
| 2 +-
package/podman/Config.in | 4 ++--
package/xenomai/Config.in | 2 +-
system/Config.in | 6 +++---
.../toolchain-external-custom/Config.in.options | 4 ++--
11 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/Config.in b/Config.in
index 1fa7ea3ca7..7a2de62a2e 100644
--- a/Config.in
+++ b/Config.in
@@ -643,7 +643,7 @@ config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
endif
choice
- bool "libraries"
+ prompt "libraries"
default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
help
@@ -823,7 +823,7 @@ comment "PIC/PIE needs a toolchain w/ PIE"
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
choice
- bool "Stack Smashing Protection"
+ prompt "Stack Smashing Protection"
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
default BR2_SSP_STRONG if BR2_TOOLCHAIN_HAS_SSP_STRONG
default BR2_SSP_REGULAR
@@ -887,7 +887,7 @@ comment "Stack Smashing Protection needs a toolchain w/ SSP"
depends on !BR2_TOOLCHAIN_HAS_SSP
choice
- bool "RELRO Protection"
+ prompt "RELRO Protection"
default BR2_RELRO_FULL if BR2_TOOLCHAIN_SUPPORTS_PIE
default BR2_RELRO_PARTIAL
depends on BR2_SHARED_LIBS
@@ -933,7 +933,7 @@ config BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
depends on !BR2_microblaze
choice
- bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
+ prompt "Buffer-overflow Detection (FORTIFY_SOURCE)"
default BR2_FORTIFY_SOURCE_1
depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_GLIBC
diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in
index ff129ed5b5..4cd4d75561 100644
--- a/boot/xilinx-prebuilt/Config.in
+++ b/boot/xilinx-prebuilt/Config.in
@@ -23,7 +23,7 @@ config BR2_TARGET_XILINX_PREBUILT_VERSION
Must be xilinx_v2023.1 or newer.
choice
- bool "family variant"
+ prompt "family variant"
default BR2_TARGET_XILINX_PREBUILT_VERSAL if BR2_PACKAGE_VERSAL_FIRMWARE # legacy
default BR2_TARGET_XILINX_PREBUILT_VERSAL if BR2_cortex_a72
default BR2_TARGET_XILINX_PREBUILT_VERSAL2 if BR2_cortex_a78
diff --git a/fs/ext2/Config.in b/fs/ext2/Config.in
index c50f22626a..c1a943435e 100644
--- a/fs/ext2/Config.in
+++ b/fs/ext2/Config.in
@@ -10,7 +10,7 @@ config BR2_TARGET_ROOTFS_EXT2_2
bool
choice
- bool "ext2/3/4 variant"
+ prompt "ext2/3/4 variant"
default BR2_TARGET_ROOTFS_EXT2_2r1
config BR2_TARGET_ROOTFS_EXT2_2r1
diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in
index 541472d957..a5464b772f 100644
--- a/package/docker-engine/Config.in
+++ b/package/docker-engine/Config.in
@@ -45,7 +45,7 @@ config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS
Build the vfs filesystem driver for Docker.
choice
- bool "support docker-init"
+ prompt "support docker-init"
default BR2_PACKAGE_DOCKER_ENGINE_DOCKER_INIT_TINI if BR2_PACKAGE_DOCKER_ENGINE_DOCKER_INIT # legacy
help
Support providing a minimal init process for containers.
diff --git a/package/efl/Config.in b/package/efl/Config.in
index c4f82b92e3..583c1c6f52 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -200,7 +200,7 @@ comment "Wayland support needs udev /dev management, OpenGL ES w/ EGL, threads,
|| !BR2_ENABLE_LOCALE
choice
- bool "OpenGL support"
+ prompt "OpenGL support"
help
libevas can be configured to use HW acceleration with OpenGL
or OpenGL ES.
diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
index 0acc235e0a..96220cfe66 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -65,7 +65,7 @@ config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
choice
- bool "DDR training binaries"
+ prompt "DDR training binaries"
default BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
help
Choose the DDR training binaries to be used depending on the
--git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
index b11db18379..8b0069a7df 100644
--- a/package/linux-headers/Config.in.host
+++ b/package/linux-headers/Config.in.host
@@ -116,7 +116,7 @@ config BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION
endif
choice
- bool "Custom kernel headers series"
+ prompt "Custom kernel headers series"
default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD
depends on !BR2_LINUX_KERNEL_LATEST_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL
depends on !BR2_LINUX_KERNEL_LATEST_CIP_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL
diff --git a/package/podman/Config.in b/package/podman/Config.in
index bbcb15691d..97d0a0270a 100644
--- a/package/podman/Config.in
+++ b/package/podman/Config.in
@@ -35,7 +35,7 @@ config BR2_PACKAGE_PODMAN
if BR2_PACKAGE_PODMAN
choice
- bool "support podman-init"
+ prompt "support podman-init"
default BR2_PACKAGE_PODMAN_INIT_CATATONIT
help
Support providing a minimal init process for containers.
@@ -68,7 +68,7 @@ config BR2_PACKAGE_PODMAN_INIT_NAME
default "catatonit" if BR2_PACKAGE_PODMAN_INIT_CATATONIT
choice
- bool "Network backend"
+ prompt "Network backend"
config BR2_PACKAGE_PODMAN_NET_PASST
bool "passt/pasta"
diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
index 13a273a960..e2fcd90669 100644
--- a/package/xenomai/Config.in
+++ b/package/xenomai/Config.in
@@ -43,7 +43,7 @@ config BR2_PACKAGE_XENOMAI
if BR2_PACKAGE_XENOMAI
choice
- bool "Xenomai version"
+ prompt "Xenomai version"
help
Make sure that the selected version has a patch for your
selected Linux kernel. If it does not, download and select a
diff --git a/system/Config.in b/system/Config.in
index 46a1cf5d59..4e575e461d 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -56,7 +56,7 @@ config BR2_TARGET_GENERIC_ISSUE
endif
choice
- bool "Passwords encoding"
+ prompt "Passwords encoding"
default BR2_TARGET_GENERIC_PASSWD_SHA256
help
Choose the password encoding scheme to use when Buildroot
@@ -196,7 +196,7 @@ endchoice
if BR2_INIT_SYSTEMD
choice
- bool "/var management"
+ prompt "/var management"
default BR2_INIT_SYSTEMD_VAR_FACTORY # legacy
depends on !BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
help
@@ -398,7 +398,7 @@ config BR2_TARGET_GENERIC_ROOT_PASSWD
password!
choice
- bool "/bin/sh"
+ prompt "/bin/sh"
default BR2_SYSTEM_BIN_SH_BASH if !BR2_PACKAGE_BUSYBOX
help
Select which shell will provide /bin/sh.
diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
index 92c1d6a37d..68acc0a1a6 100644
--- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
@@ -41,7 +41,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
as external toolchain.
choice
- bool "External toolchain gcc version"
+ prompt "External toolchain gcc version"
help
Set to the gcc version that is used by your external
toolchain.
@@ -159,7 +159,7 @@ comment "GCC older than 4.8 is not tested by Buildroot. Use at your own risk."
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
choice
- bool "External toolchain kernel headers series"
+ prompt "External toolchain kernel headers series"
default BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
help
Set to the kernel headers version that were used to build
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 5/7] package/openssl: move libopenssl/libressl options out of the choice
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
` (2 preceding siblings ...)
2026-10-10 15:11 ` [Buildroot] [PATCH 3/7] */Config.in: replace bool entries with prompt within all choices Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 6/7] docs/manual: add migration notes for changes in the kconfig syntax Titouan Christophe via buildroot
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
The libopenssl and libressl sub-options are currently defined from
package/{libopenssl,libressl}/Config.in, which are sourced from within
the "ssl library" choice block, each wrapped in an "if" on its own
choice entry.
With the old kconfig, these entries were reparented below the choice
member they depend on, and so were not considered choice members
themselves. Since Linux commit 7e3465f63a0a [1], first released in v6.10,
this is no longer the case: every config entry inside a choice block is
a member of that choice. Combined with the stricter checks introduced by
commits 700e7a8d05ea [2] and fde192511bdb [3], parsing now fails with:
package/libopenssl/Config.in:5: error: choice member must have a prompt
package/libopenssl/Config.in:15: error: choice member must have a prompt
package/libopenssl/Config.in:15: error: choice member must be bool
Fix that by sourcing package/{libopenssl,libressl}/Config.in after the
endchoice, guarded by the corresponding choice entry, and drop the now
redundant "if" blocks from those files.
The openssl providers from br2-external trees are still sourced inside
the choice, as they define additional entries of that choice. This
relies on 'source' still being allowed inside a 'choice', which is
provided by our kconfig patch
24-kconfig-allow-source-inside-choice.patch.
This does not change the generated configuration: all the in-tree
defconfigs produce the same .config as before.
[1] 7e3465f63a0a: kconfig: do not reparent the menu inside a choice block
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e3465f63a0a70641ed8e49f9d40ee613f7da586
[2] 700e7a8d05ea: kconfig: turn missing prompt for choice members into error
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=700e7a8d05ea690308131f69ffc597dfab6db838
[3] fde192511bdb: kconfig: remove tristate choice support
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fde192511bdbff554320b31574bb8a9cb3275522
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
package/libopenssl/Config.in | 4 ----
package/libressl/Config.in | 4 ----
package/openssl/Config.in | 12 ++++++++----
3 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/package/libopenssl/Config.in b/package/libopenssl/Config.in
index 03d3def802..a76def1470 100644
--- a/package/libopenssl/Config.in
+++ b/package/libopenssl/Config.in
@@ -1,5 +1,3 @@
-if BR2_PACKAGE_LIBOPENSSL
-
# 4xx PowerPC cores seem to have trouble with openssl's ASM
# optimizations
config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC
@@ -228,5 +226,3 @@ config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL_TRACE
help
Build with SSL Trace support. Disabling this option may
provide a small reduction in libssl binary size.
-
-endif # BR2_PACKAGE_LIBOPENSSL
diff --git a/package/libressl/Config.in b/package/libressl/Config.in
index 600829cb9e..2146481faa 100644
--- a/package/libressl/Config.in
+++ b/package/libressl/Config.in
@@ -1,9 +1,5 @@
-if BR2_PACKAGE_LIBRESSL
-
config BR2_PACKAGE_LIBRESSL_BIN
bool "openssl binary"
help
Install the openssl binary to the target file system. This is
a command line tool for doing various cryptographic stuff.
-
-endif
diff --git a/package/openssl/Config.in b/package/openssl/Config.in
index ca9d1a7e50..cae1b049fb 100644
--- a/package/openssl/Config.in
+++ b/package/openssl/Config.in
@@ -39,8 +39,6 @@ config BR2_PACKAGE_LIBOPENSSL
Note: Some helper scripts need perl.
-source "package/libopenssl/Config.in"
-
config BR2_PACKAGE_LIBRESSL
bool "libressl"
depends on BR2_PACKAGE_LIBRESSL_ARCH_SUPPORTS
@@ -56,13 +54,19 @@ config BR2_PACKAGE_LIBRESSL
http://www.libressl.org/
-source "package/libressl/Config.in"
-
# openssl from br2-external trees, if any
source "$(BASE_DIR)/.br2-external.in.openssl"
endchoice
+if BR2_PACKAGE_LIBOPENSSL
+source "package/libopenssl/Config.in"
+endif
+
+if BR2_PACKAGE_LIBRESSL
+source "package/libressl/Config.in"
+endif
+
config BR2_PACKAGE_HAS_OPENSSL
bool
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 6/7] docs/manual: add migration notes for changes in the kconfig syntax
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
` (3 preceding siblings ...)
2026-10-10 15:11 ` [Buildroot] [PATCH 5/7] package/openssl: move libopenssl/libressl options out of the choice Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
2026-10-11 19:12 ` [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Petr Vorel
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
Previous patches introduced some changes in the KConfig syntax,
namely on variable expansion and choice entries. Reflect that in
the migration guide.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
docs/manual/migrating.adoc | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/docs/manual/migrating.adoc b/docs/manual/migrating.adoc
index 86b040a19c..b2e0cb24b4 100644
--- a/docs/manual/migrating.adoc
+++ b/docs/manual/migrating.adoc
@@ -270,3 +270,16 @@ changed, therefore the suffix of such tarballs has been changed from
Due to the update of Dovecot to version 2.4.x the runtime configuration
files need to be updated.
+
+Following the update of the bundled kconfig infrastructure, the syntax
+of +Config.in+ files changed in a few ways, which affects **all
+br2-external trees**:
+
+- variable names in +source+ statements and prompts must now be
+ enclosed in parentheses. For example,
+ +source "$BR2_EXTERNAL_FOO_PATH/bar"+ must now be rewritten as
+ +source "$(BR2_EXTERNAL_FOO_PATH)/bar"+;
+- +option env="VAR"+ is no longer supported. Environment variables
+ are referenced directly as +$(VAR)+ instead;
+- the prompt of a +choice+ must now be given with +prompt "..."+
+ instead of +bool "..."+.
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
` (4 preceding siblings ...)
2026-10-10 15:11 ` [Buildroot] [PATCH 6/7] docs/manual: add migration notes for changes in the kconfig syntax Titouan Christophe via buildroot
@ 2026-10-10 15:11 ` Titouan Christophe via buildroot
2026-10-11 19:12 ` [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Petr Vorel
6 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 15:11 UTC (permalink / raw)
To: buildroot; +Cc: petr.vorel, ps.report, yann.morin, thomas.petazzoni
As informally proposed during the February 2026 Buildroot dev meeting,
this introduces a new kconfig user interface based on Zephyr's kconfiglib.
The name "yellowconfig" is inspired by the yellow-themed curses interface,
as opposed to the classical blue "menuconfig".
Read more about kconfiglib: https://github.com/zephyrproject-rtos/Kconfiglib
To run that target, one has to install kconfiglib beforehand,
for example by issuing the following command:
> pip install kconfiglib
In terms of user interface differences, Zephyr's kconfig brings:
- searching symbols as you type, and more symbols are visible in a single
page of search results [1]
- symbols that aren't selectable (because of unmet dependencies) can be
viewed (toggling them on or off with the key "A") [2]
- symbols y/n dependencies are displayed more clearly, each one on a newline.
This is especially appreciable when there are many of them, whereas in the
classical menuconfig one has to scroll left/right to view them [3]
Having this as a new make target allow for Buildroot users to try it out
and forge their opinion on this different interface without breaking
habits and usual workflows. However, in the longer run, this could possibly
allow to replace the custom-patched kconfig programs we ship in Buildroot
with an unmodified upstream supported codebase. If this proves to be useful,
an appropriate distribution strategy for kconfiglib must be determined,
such that it doesn't need to be installed externally by users.
Moreover, as unselectable symbols can be displayed in the interface, this
would remove the need for comments in the like "<pkg> needs <condition>",
where we need to invert and maintain conditional dependencies.
As a final nice addition, having a Python based kconfiglib allows for
programmatic access to kconfig symbols and settings in scripts, which
could be useful in testing scenarios.
[1] https://gitlab.com/-/project/2648174/uploads/8ae29a772927e7e555f85f6d31876bb4/2026-02-04-105501_958x1015_scrot.png
[2] https://gitlab.com/-/project/2648174/uploads/8d27510cf738cab9fd95ffdd81f75bc9/2026-02-04-105514_958x1015_scrot.png
[3] https://gitlab.com/-/project/2648174/uploads/6d51a4b608fce076ac8c0c84623531f2/2026-02-04-105522_958x1015_scrot.png
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
Makefile | 6 +++++-
docs/manual/quickstart.adoc | 7 +++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 7fa3ce4890..8fa95a86a6 100644
--- a/Makefile
+++ b/Makefile
@@ -122,7 +122,7 @@ export BR2_VERSION_FULL := $(BR2_LOCALVERSION)
endif
# List of targets and target patterns for which .config doesn't need to be read in
-noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
+noconfig_targets := menuconfig yellowconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig distclean manual manual-% check-package \
@@ -1017,6 +1017,9 @@ gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
+yellowconfig: outputmakefile
+ @$(COMMON_CONFIG_ENV) CONFIG_= python -m menuconfig $(CONFIG_CONFIG_IN)
+
nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
@@ -1164,6 +1167,7 @@ help:
@echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator'
@echo ' nconfig - interactive ncurses-based configurator'
+ @echo ' yellowconfig - interactive kconfiglib-based configurator'
@echo ' xconfig - interactive Qt-based configurator'
@echo ' gconfig - interactive GTK-based configurator'
@echo ' oldconfig - resolve any unresolved symbols in .config'
diff --git a/docs/manual/quickstart.adoc b/docs/manual/quickstart.adoc
index 605031037f..d8e788ca97 100644
--- a/docs/manual/quickstart.adoc
+++ b/docs/manual/quickstart.adoc
@@ -27,6 +27,13 @@ for the original curses-based configurator, or
for the new curses-based configurator, or
+----
+ $ make yellowconfig
+----
+
+for the https://pypi.org/project/kconfiglib/[Python kconfiglib]
+curses-based configurator, or
+
----
$ make xconfig
----
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
` (5 preceding siblings ...)
2026-10-10 15:11 ` [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
@ 2026-10-11 19:12 ` Petr Vorel
2026-10-11 19:30 ` Titouan Christophe via buildroot
6 siblings, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2026-10-11 19:12 UTC (permalink / raw)
To: Titouan Christophe; +Cc: ps.report, yann.morin, thomas.petazzoni, buildroot
Hi Titouan,
thanks for this work.
I'm having a trouble to apply your patchset. Could you please rebase on current
next or master branch and push your fork somewhere?
Kind regards,
Petr
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9
2026-10-11 19:12 ` [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Petr Vorel
@ 2026-10-11 19:30 ` Titouan Christophe via buildroot
0 siblings, 0 replies; 9+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-11 19:30 UTC (permalink / raw)
To: Petr Vorel; +Cc: ps.report, yann.morin, thomas.petazzoni, buildroot
Hello Petr,
On 11/10/26 21:12, Petr Vorel wrote:
> Hi Titouan,
>
> thanks for this work.
>
> I'm having a trouble to apply your patchset. Could you please rebase on current
> next or master branch and push your fork somewhere?
I just rebased on top of the latest master
(f43af4ef31cd40270c7db94b98c0ff9f212e6448) and pushed there:
https://gitlab.com/essensium-mind/buildroot/-/commits/bump-kconfig
Kind regards,
Titouan
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-10-11 19:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 2/7] */Config.in: use the new $(VAR) syntax Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 3/7] */Config.in: replace bool entries with prompt within all choices Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 5/7] package/openssl: move libopenssl/libressl options out of the choice Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 6/7] docs/manual: add migration notes for changes in the kconfig syntax Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
2026-10-11 19:12 ` [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Petr Vorel
2026-10-11 19:30 ` Titouan Christophe via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox