Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure
@ 2026-02-04 15:43 Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 1/7] support/kconfig: fix invalid filenames in patch 23 Titouan Christophe via buildroot
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

This is an update of Peter Seiderer's series [1], rebasing the v2 [2] on top
of the latest Buildroot master.

The main changes introduced here are:
- update support/kconfig to match what's in Linux 6.9-rc5
- add support for Zephyr's kconfiglib as a new configuration interface
- fix remaining issues or merge conflicts from the former series

[1] https://lore.kernel.org/buildroot/20240506144555.31709-1-ps.report@gmx.net/
[2] https://lore.kernel.org/buildroot/20240513091950.30116-1-ps.report@gmx.net/

Peter Seiderer (4):
  Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR
  support/kconfig: bump to linux-v6.9-rc5 version
  support/kconfig: reference environment variables directly (remove
    'option env=')
  package/openssl: move libopenssl/libressl/.br2-external.in.openssl
    source statements outside of the choice

Titouan Christophe (3):
  support/kconfig: fix invalid filenames in patch 23
  docs: update the Buildroot manual for kconfig variables expansion
  Makefile: add new target "yellowconfig" based on kconfiglib

 Config.in                                     |   53 +-
 Config.in.legacy                              |    6 +-
 Makefile                                      |    3 +
 docs/manual/customize-outside-br.adoc         |   12 +-
 docs/manual/migrating.adoc                    |    7 +
 docs/manual/quickstart.adoc                   |    7 +
 linux/Config.ext.in                           |    2 +-
 package/amlogic-boot-fip/Config.in.host       |    2 +-
 package/erlang/Config.in                      |    6 +-
 package/flutter-sdk-bin/Config.in.host        |    2 +-
 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/luajit/Config.in                      |    4 +-
 package/mono/Config.in                        |    4 +-
 package/nodejs/Config.in.host                 |    8 +-
 package/openjdk/Config.in                     |    4 +-
 package/openssl/Config.in                     |   21 +-
 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/kconfig/Kbuild.include                |  273 ++
 support/kconfig/Makefile                      |  375 +-
 support/kconfig/Makefile.br                   |   10 +-
 support/kconfig/POTFILES.in                   |   12 -
 support/kconfig/README.buildroot              |   11 +-
 support/kconfig/array_size.h                  |   11 +
 support/kconfig/check.sh                      |   14 -
 support/kconfig/conf.c                        |  562 ++-
 support/kconfig/confdata.c                    | 1358 +++---
 support/kconfig/expr.c                        |   29 +-
 support/kconfig/expr.h                        |   49 +-
 support/kconfig/foo.h                         |   12 -
 support/kconfig/gconf-cfg.sh                  |   33 +
 support/kconfig/gconf.c                       |  100 +-
 support/kconfig/hashtable.h                   |   48 +
 support/kconfig/images.c                      |   34 +-
 support/kconfig/images.h                      |   33 +
 support/kconfig/internal.h                    |   21 +
 support/kconfig/kconf_id.c                    |   53 -
 support/kconfig/kxgettext.c                   |  235 -
 support/kconfig/lexer.l                       |  460 ++
 support/kconfig/lexer.lex.c_shipped           | 4103 +++++++++++++++++
 support/kconfig/list.h                        |  254 +-
 support/kconfig/list_types.h                  |   17 +
 support/kconfig/lkc.h                         |  117 +-
 support/kconfig/lkc_proto.h                   |   33 +-
 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           |   21 +-
 support/kconfig/lxdialog/menubox.c            |   35 +-
 support/kconfig/lxdialog/textbox.c            |  330 +-
 support/kconfig/lxdialog/util.c               |   41 +-
 support/kconfig/lxdialog/yesno.c              |   21 +-
 support/kconfig/mconf-cfg.sh                  |   55 +
 support/kconfig/mconf.c                       |  529 +--
 support/kconfig/menu.c                        |  345 +-
 support/kconfig/merge_config.sh               |   91 +-
 support/kconfig/mnconf-common.c               |   53 +
 support/kconfig/mnconf-common.h               |   18 +
 support/kconfig/nconf-cfg.sh                  |   53 +
 support/kconfig/nconf.c                       |  295 +-
 support/kconfig/nconf.gui.c                   |  326 +-
 support/kconfig/nconf.h                       |   62 +-
 support/kconfig/parser.tab.c_shipped          | 2189 +++++++++
 support/kconfig/parser.tab.h_shipped          |  134 +
 support/kconfig/{zconf.y => parser.y}         |  467 +-
 .../01-kconfig-kernel-to-buildroot.patch      |  115 +-
 .../06-br-build-system-integration.patch      |  103 +-
 .../kconfig/patches/10-br-build-system.patch  |   66 +-
 .../patches/11-use-mktemp-for-lxdialog.patch  |   17 -
 .../patches/12-fix-glade-file-path.patch      |   14 +-
 .../14-support-out-of-tree-config.patch       |  202 +-
 .../16-fix-space-to-de-select-options.patch   |   19 +-
 .../kconfig/patches/17-backport-kecho.patch   |   26 -
 ...fig.sh-create-temporary-files-in-tmp.patch |   19 +-
 ...e_config.sh-add-br2-external-support.patch |   24 +-
 ...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 |   24 +-
 ...llow-only-config-comment-and-if-insi.patch |  956 ++++
 support/kconfig/patches/series                |    3 +-
 support/kconfig/preprocess.c                  |  580 +++
 support/kconfig/preprocess.h                  |   19 +
 support/kconfig/qconf-cfg.sh                  |   40 +
 support/kconfig/qconf.cc                      | 1199 ++---
 support/kconfig/qconf.h                       |  163 +-
 support/kconfig/streamline_config.pl          |  104 +-
 support/kconfig/symbol.c                      |  374 +-
 support/kconfig/util.c                        |  122 +-
 support/kconfig/zconf.l                       |  372 --
 support/kconfig/zconf.lex.c_shipped           | 2500 ----------
 support/kconfig/zconf.tab.c_shipped           | 2488 ----------
 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 +-
 .../toolchain-external-synopsys-arc/Config.in |    2 +-
 112 files changed, 13001 insertions(+), 10420 deletions(-)
 create mode 100644 support/kconfig/Kbuild.include
 delete mode 100644 support/kconfig/POTFILES.in
 create mode 100644 support/kconfig/array_size.h
 delete mode 100755 support/kconfig/check.sh
 delete mode 100644 support/kconfig/foo.h
 create mode 100755 support/kconfig/gconf-cfg.sh
 create mode 100644 support/kconfig/hashtable.h
 create mode 100644 support/kconfig/images.h
 create mode 100644 support/kconfig/internal.h
 delete mode 100644 support/kconfig/kconf_id.c
 delete mode 100644 support/kconfig/kxgettext.c
 create mode 100644 support/kconfig/lexer.l
 create mode 100644 support/kconfig/lexer.lex.c_shipped
 create mode 100644 support/kconfig/list_types.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
 rename support/kconfig/{zconf.y => parser.y} (56%)
 delete mode 100644 support/kconfig/patches/11-use-mktemp-for-lxdialog.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
 create mode 100644 support/kconfig/patches/24-Revert-kconfig-allow-only-config-comment-and-if-insi.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

-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 1/7] support/kconfig: fix invalid filenames in patch 23
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 2/7] Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR Titouan Christophe via buildroot
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

All file paths in patch 23-kconfig-mn-conf-handle-backspace-H-key.patch
have a leading "kconfig/" prefix, unlike all the other kconfig patches.
Therefore, it does not apply or unapply cleanly.

Let's therefore remove that prefix so this patch can be applied along all
its siblings.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 ...onfig-mn-conf-handle-backspace-H-key.patch | 24 +++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/support/kconfig/patches/23-kconfig-mn-conf-handle-backspace-H-key.patch b/support/kconfig/patches/23-kconfig-mn-conf-handle-backspace-H-key.patch
index 6e32115f70..502c708034 100644
--- a/support/kconfig/patches/23-kconfig-mn-conf-handle-backspace-H-key.patch
+++ b/support/kconfig/patches/23-kconfig-mn-conf-handle-backspace-H-key.patch
@@ -11,15 +11,15 @@ terminals.
 Signed-off-by: Changbin Du <changbin.du@gmail.com>
 Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
 ---
- kconfig/lxdialog/inputbox.c | 3 ++-
- kconfig/nconf.c             | 2 +-
- kconfig/nconf.gui.c         | 3 ++-
+ lxdialog/inputbox.c | 3 ++-
+ nconf.c             | 2 +-
+ nconf.gui.c         | 3 ++-
  3 files changed, 5 insertions(+), 3 deletions(-)
 
-diff --git a/kconfig/lxdialog/inputbox.c b/kconfig/lxdialog/inputbox.c
+diff --git a/lxdialog/inputbox.c b/lxdialog/inputbox.c
 index 611945611bf8..1dcfb288ee63 100644
---- a/kconfig/lxdialog/inputbox.c
-+++ b/kconfig/lxdialog/inputbox.c
+--- a/lxdialog/inputbox.c
++++ b/lxdialog/inputbox.c
 @@ -113,7 +113,8 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
  			case KEY_DOWN:
  				break;
@@ -30,10 +30,10 @@ index 611945611bf8..1dcfb288ee63 100644
  				if (pos) {
  					wattrset(dialog, dlg.inputbox.atr);
  					if (input_x == 0) {
-diff --git a/kconfig/nconf.c b/kconfig/nconf.c
+diff --git a/nconf.c b/nconf.c
 index a4670f4e825a..ac92c0ded6c5 100644
---- a/kconfig/nconf.c
-+++ b/kconfig/nconf.c
+--- a/nconf.c
++++ b/nconf.c
 @@ -1048,7 +1048,7 @@ static int do_match(int key, struct match_state *state, int *ans)
  		state->match_direction = FIND_NEXT_MATCH_UP;
  		*ans = get_mext_match(state->pattern,
@@ -43,10 +43,10 @@ index a4670f4e825a..ac92c0ded6c5 100644
  		state->pattern[strlen(state->pattern)-1] = '\0';
  		adj_match_dir(&state->match_direction);
  	} else
-diff --git a/kconfig/nconf.gui.c b/kconfig/nconf.gui.c
+diff --git a/nconf.gui.c b/nconf.gui.c
 index 7be620a1fcdb..77f525a8617c 100644
---- a/kconfig/nconf.gui.c
-+++ b/kconfig/nconf.gui.c
+--- a/nconf.gui.c
++++ b/nconf.gui.c
 @@ -439,7 +439,8 @@ int dialog_inputbox(WINDOW *main_window,
  		case KEY_F(F_EXIT):
  		case KEY_F(F_BACK):
-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 2/7] Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 1/7] support/kconfig: fix invalid filenames in patch 23 Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=') Titouan Christophe via buildroot
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

From: Peter Seiderer <ps.report@gmx.net>

- escape TOPDIR, BASE_DIR and CONFIG_DIR usage to force to not exapnd at
  configure time (but at make time), needed for upcoming kconfig update
  (see upstream commit [1])

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=104daea149c45cc84842ce77a9bd6436d19f3dd8

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 Config.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Config.in b/Config.in
index d730f2034b..bb70964609 100644
--- a/Config.in
+++ b/Config.in
@@ -237,7 +237,7 @@ config BR2_DEFCONFIG
 
 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
@@ -251,7 +251,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
@@ -709,7 +709,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
-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=')
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 1/7] support/kconfig: fix invalid filenames in patch 23 Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 2/7] Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-05-12 21:33   ` Petr Vorel
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 5/7] package/openssl: move libopenssl/libressl/.br2-external.in.openssl source statements outside of the choice Titouan Christophe via buildroot
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

From: Peter Seiderer <ps.report@gmx.net>

- reference environment variables directly (remove 'option env='), see
  upstream commit [1]:

  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

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=104daea149c45cc84842ce77a9bd6436d19f3dd8

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 Config.in                                     | 47 +++++--------------
 Config.in.legacy                              |  6 +--
 linux/Config.ext.in                           |  2 +-
 package/amlogic-boot-fip/Config.in.host       |  2 +-
 package/erlang/Config.in                      |  6 +--
 package/flutter-sdk-bin/Config.in.host        |  2 +-
 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 +--
 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 +-
 .../toolchain-external-synopsys-arc/Config.in |  2 +-
 30 files changed, 78 insertions(+), 103 deletions(-)

diff --git a/Config.in b/Config.in
index bb70964609..85cdb3b413 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
@@ -15,63 +15,46 @@ config BR2_HAVE_DOT_CONFIG
 config BR2_BROKEN
 	bool
 
-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"
-
 # 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
@@ -223,14 +206,10 @@ 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.
@@ -1026,4 +1005,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 2971699c78..5dc86189b7 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/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/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/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 7f29e7a489..271e3fa029 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 633201b38c..1681e8976f 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 c3e9a13f39..2de23d3edc 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 db3b1570ef..cb764f0c9b 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/system/Config.in b/system/Config.in
index 98bbd93092..47b22cb697 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 831387bc4e..11f107b41e 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -29,7 +29,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 3a71e1356b..bf31e34c8f 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 14.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_15
 	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 8582fe0ec8..dcdb925e6c 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 14.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_15
 	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 7b1a7fb27f..95237a1735 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_15
 	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-synopsys-arc/Config.in b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
index 07688a1416..2847b34007 100644
--- a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
@@ -3,7 +3,7 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
 	depends on BR2_arc750d || BR2_arc770d || \
 		BR2_archs38_64mpy || BR2_archs38_full || \
 		BR2_archs4x_rel31 || BR2_archs4x
-	depends on BR2_HOSTARCH = "x86_64"
+	depends on "$(HOSTARCH)" = "x86_64"
 	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_15
 	# The toolchains have libncurses and libexpat in their
 	# sysroot, confusing Buildroot and causing build
-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 5/7] package/openssl: move libopenssl/libressl/.br2-external.in.openssl source statements outside of the choice
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
                   ` (2 preceding siblings ...)
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=') Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 6/7] docs: update the Buildroot manual for kconfig variables expansion Titouan Christophe via buildroot
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

From: Peter Seiderer <ps.report@gmx.net>

Fixes the following error/warnings with kconfig from linux-6.9-rc5:

  package/libopenssl/Config.in:5:warning: choice value must have a prompt
  package/libopenssl/Config.in:7:warning: defaults for choice values not supported
  package/libopenssl/Config.in:15:warning: choice value must have a prompt
  package/libopenssl/Config.in:18:warning: defaults for choice values not supported
  package/libopenssl/Config.in:19:warning: defaults for choice values not supported
  package/libopenssl/Config.in:20:warning: defaults for choice values not supported
  package/libopenssl/Config.in:21:warning: defaults for choice values not supported
  package/libopenssl/Config.in:22:warning: defaults for choice values not supported
  package/libopenssl/Config.in:23:warning: defaults for choice values not supported
  package/libopenssl/Config.in:24:warning: defaults for choice values not supported
  package/libopenssl/Config.in:25:warning: defaults for choice values not supported
  package/libopenssl/Config.in:26:warning: defaults for choice values not supported
  package/libopenssl/Config.in:27:warning: defaults for choice values not supported
  package/libopenssl/Config.in:28:warning: defaults for choice values not supported
  package/libopenssl/Config.in:32:warning: defaults for choice values not supported
  package/libopenssl/Config.in:33:warning: defaults for choice values not supported
  package/libopenssl/Config.in:34:warning: defaults for choice values not supported
  package/libopenssl/Config.in:50:warning: defaults for choice values not supported
  package/libopenssl/Config.in:54:warning: defaults for choice values not supported
  package/libopenssl/Config.in:58:warning: defaults for choice values not supported
  package/libopenssl/Config.in:62:warning: defaults for choice values not supported
  package/libopenssl/Config.in:66:warning: defaults for choice values not supported
  package/libopenssl/Config.in:70:warning: defaults for choice values not supported
  package/libopenssl/Config.in:75:warning: defaults for choice values not supported
  package/libopenssl/Config.in:79:warning: defaults for choice values not supported
  package/libopenssl/Config.in:83:warning: defaults for choice values not supported
  package/libopenssl/Config.in:87:warning: defaults for choice values not supported
  package/libopenssl/Config.in:91:warning: defaults for choice values not supported
  package/libopenssl/Config.in:95:warning: defaults for choice values not supported
  package/libopenssl/Config.in:99:warning: defaults for choice values not supported
  package/libopenssl/Config.in:103:warning: defaults for choice values not supported
  package/libopenssl/Config.in:107:warning: defaults for choice values not supported
  package/libopenssl/Config.in:111:warning: defaults for choice values not supported
  package/libopenssl/Config.in:115:warning: defaults for choice values not supported
  package/libopenssl/Config.in:119:warning: defaults for choice values not supported
  package/libopenssl/Config.in:123:warning: defaults for choice values not supported
  package/libopenssl/Config.in:130:warning: defaults for choice values not supported
  package/libopenssl/Config.in:134:warning: defaults for choice values not supported
  package/openssl/Config.in:12:error: recursive dependency detected!
  package/openssl/Config.in:12:	choice <choice> contains symbol BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC
  package/libopenssl/Config.in:5:	symbol BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC is part of choice BR2_PACKAGE_LIBOPENSSL
  package/openssl/Config.in:17:	symbol BR2_PACKAGE_LIBOPENSSL is part of choice <choice>
  For a resolution refer to Documentation/kbuild/kconfig-language.rst
  subsection "Kconfig recursive dependency limitations"

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 package/libopenssl/Config.in |  4 ----
 package/libressl/Config.in   |  4 ----
 package/openssl/Config.in    | 19 ++++++++++++++-----
 3 files changed, 14 insertions(+), 13 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..335e00d04a 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,12 +54,23 @@ config BR2_PACKAGE_LIBRESSL
 
 	  http://www.libressl.org/
 
+config BR2_PACKAGE_OPENSSL_EXTERNAL
+        bool "from an external tree"
+        depends on "$(BR2_EXTERNAL)" != ""
+
+endchoice
+
+if BR2_PACKAGE_LIBOPENSSL
+source "package/libopenssl/Config.in"
+endif
+
+if BR2_PACKAGE_LIBRESSL
 source "package/libressl/Config.in"
+endif
 
-# openssl from br2-external trees, if any
+if BR2_PACKAGE_OPENSSL_EXTERNAL
 source "$(BASE_DIR)/.br2-external.in.openssl"
-
-endchoice
+endif
 
 config BR2_PACKAGE_HAS_OPENSSL
 	bool
-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 6/7] docs: update the Buildroot manual for kconfig variables expansion
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
                   ` (3 preceding siblings ...)
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 5/7] package/openssl: move libopenssl/libressl/.br2-external.in.openssl source statements outside of the choice Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

Since the update of kconfig, $VARIABLES are no longer expanded.
Update the Buildoot user manual accordingly.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 docs/manual/customize-outside-br.adoc | 12 ++++++------
 docs/manual/migrating.adoc            |  7 +++++++
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/docs/manual/customize-outside-br.adoc b/docs/manual/customize-outside-br.adoc
index 78065489d4..7e9dcd0cc4 100644
--- a/docs/manual/customize-outside-br.adoc
+++ b/docs/manual/customize-outside-br.adoc
@@ -153,8 +153,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:
@@ -243,10 +243,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/docs/manual/migrating.adoc b/docs/manual/migrating.adoc
index d8d86d8945..fe3d34d740 100644
--- a/docs/manual/migrating.adoc
+++ b/docs/manual/migrating.adoc
@@ -247,3 +247,10 @@ In 2026.02, the network-manager package stopped selecting the gnutls package as
 a cryptography backend automatically. Manually enable the gnutls or libnss
 package if you require features that depend on a cryptography backend, such as
 certificate-based authentication.
+
+Following the update of the bundled kconfig programs suite, variable names
+in `source` statements must now be enclosed in parentheses. For example,
+`source "$BR2_EXTERNAL_FOO_PATH/bar"` should now be rewritten as
+`source "$(BR2_EXTERNAL_FOO_PATH)/bar"`.
+This is affecting **all buildroot externals**, which must therefore be
+updated accordingly to support Buildroot 2026.02 and upper
-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v3 7/7] Makefile: add new target "yellowconfig" based on kconfiglib
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
                   ` (4 preceding siblings ...)
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 6/7] docs: update the Buildroot manual for kconfig variables expansion Titouan Christophe via buildroot
@ 2026-02-04 15:43 ` Titouan Christophe via buildroot
  2026-02-05  7:28 ` [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Peter Seiderer via buildroot
       [not found] ` <20260204154340.766528-4-titouan.christophe@mind.be>
  7 siblings, 0 replies; 10+ messages in thread
From: Titouan Christophe via buildroot @ 2026-02-04 15:43 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel, Peter Seiderer

As informally proposed during the 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.

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                    | 3 +++
 docs/manual/quickstart.adoc | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/Makefile b/Makefile
index 4cf8750bfb..af810657a7 100644
--- a/Makefile
+++ b/Makefile
@@ -996,6 +996,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) python -m menuconfig $(CONFIG_CONFIG_IN)
+
 nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
 	@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
 
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.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure
  2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
                   ` (5 preceding siblings ...)
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
@ 2026-02-05  7:28 ` Peter Seiderer via buildroot
       [not found] ` <20260204154340.766528-4-titouan.christophe@mind.be>
  7 siblings, 0 replies; 10+ messages in thread
From: Peter Seiderer via buildroot @ 2026-02-05  7:28 UTC (permalink / raw)
  To: Titouan Christophe; +Cc: Petr Vorel, buildroot

Hello Titouan,

thanks for taking care of the patchset...

On Wed,  4 Feb 2026 16:43:27 +0100, Titouan Christophe <titouan.christophe@mind.be> wrote:

> This is an update of Peter Seiderer's series [1], rebasing the v2 [2] on top
> of the latest Buildroot master.
> 
> The main changes introduced here are:
> - update support/kconfig to match what's in Linux 6.9-rc5
> - add support for Zephyr's kconfiglib as a new configuration interface
> - fix remaining issues or merge conflicts from the former series
> 
> [1] https://lore.kernel.org/buildroot/20240506144555.31709-1-ps.report@gmx.net/
> [2] https://lore.kernel.org/buildroot/20240513091950.30116-1-ps.report@gmx.net/

The patch 'Makefile: always use a base config file for defconfig' ([3]) suggested
by Yann E. MORIN should be added as preparing patch...

The patch 'toolchain-external: do not expand ARCH' ([4], [5]) should be added to
the patchset...

Regards,
Peter

[3] https://lore.kernel.org/buildroot/ZjyqwNLypWWS21v5@landeda/
[4] https://lore.kernel.org/buildroot/20240514001106.6e9d8206@gmx.net/
[5] https://lore.kernel.org/buildroot/20250521094004.4fb92fe1@gmx.net/


> 
> Peter Seiderer (4):
>   Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR
>   support/kconfig: bump to linux-v6.9-rc5 version
>   support/kconfig: reference environment variables directly (remove
>     'option env=')
>   package/openssl: move libopenssl/libressl/.br2-external.in.openssl
>     source statements outside of the choice
> 
> Titouan Christophe (3):
>   support/kconfig: fix invalid filenames in patch 23
>   docs: update the Buildroot manual for kconfig variables expansion
>   Makefile: add new target "yellowconfig" based on kconfiglib
> 
>  Config.in                                     |   53 +-
>  Config.in.legacy                              |    6 +-
>  Makefile                                      |    3 +
>  docs/manual/customize-outside-br.adoc         |   12 +-
>  docs/manual/migrating.adoc                    |    7 +
>  docs/manual/quickstart.adoc                   |    7 +
>  linux/Config.ext.in                           |    2 +-
>  package/amlogic-boot-fip/Config.in.host       |    2 +-
>  package/erlang/Config.in                      |    6 +-
>  package/flutter-sdk-bin/Config.in.host        |    2 +-
>  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/luajit/Config.in                      |    4 +-
>  package/mono/Config.in                        |    4 +-
>  package/nodejs/Config.in.host                 |    8 +-
>  package/openjdk/Config.in                     |    4 +-
>  package/openssl/Config.in                     |   21 +-
>  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/kconfig/Kbuild.include                |  273 ++
>  support/kconfig/Makefile                      |  375 +-
>  support/kconfig/Makefile.br                   |   10 +-
>  support/kconfig/POTFILES.in                   |   12 -
>  support/kconfig/README.buildroot              |   11 +-
>  support/kconfig/array_size.h                  |   11 +
>  support/kconfig/check.sh                      |   14 -
>  support/kconfig/conf.c                        |  562 ++-
>  support/kconfig/confdata.c                    | 1358 +++---
>  support/kconfig/expr.c                        |   29 +-
>  support/kconfig/expr.h                        |   49 +-
>  support/kconfig/foo.h                         |   12 -
>  support/kconfig/gconf-cfg.sh                  |   33 +
>  support/kconfig/gconf.c                       |  100 +-
>  support/kconfig/hashtable.h                   |   48 +
>  support/kconfig/images.c                      |   34 +-
>  support/kconfig/images.h                      |   33 +
>  support/kconfig/internal.h                    |   21 +
>  support/kconfig/kconf_id.c                    |   53 -
>  support/kconfig/kxgettext.c                   |  235 -
>  support/kconfig/lexer.l                       |  460 ++
>  support/kconfig/lexer.lex.c_shipped           | 4103 +++++++++++++++++
>  support/kconfig/list.h                        |  254 +-
>  support/kconfig/list_types.h                  |   17 +
>  support/kconfig/lkc.h                         |  117 +-
>  support/kconfig/lkc_proto.h                   |   33 +-
>  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           |   21 +-
>  support/kconfig/lxdialog/menubox.c            |   35 +-
>  support/kconfig/lxdialog/textbox.c            |  330 +-
>  support/kconfig/lxdialog/util.c               |   41 +-
>  support/kconfig/lxdialog/yesno.c              |   21 +-
>  support/kconfig/mconf-cfg.sh                  |   55 +
>  support/kconfig/mconf.c                       |  529 +--
>  support/kconfig/menu.c                        |  345 +-
>  support/kconfig/merge_config.sh               |   91 +-
>  support/kconfig/mnconf-common.c               |   53 +
>  support/kconfig/mnconf-common.h               |   18 +
>  support/kconfig/nconf-cfg.sh                  |   53 +
>  support/kconfig/nconf.c                       |  295 +-
>  support/kconfig/nconf.gui.c                   |  326 +-
>  support/kconfig/nconf.h                       |   62 +-
>  support/kconfig/parser.tab.c_shipped          | 2189 +++++++++
>  support/kconfig/parser.tab.h_shipped          |  134 +
>  support/kconfig/{zconf.y => parser.y}         |  467 +-
>  .../01-kconfig-kernel-to-buildroot.patch      |  115 +-
>  .../06-br-build-system-integration.patch      |  103 +-
>  .../kconfig/patches/10-br-build-system.patch  |   66 +-
>  .../patches/11-use-mktemp-for-lxdialog.patch  |   17 -
>  .../patches/12-fix-glade-file-path.patch      |   14 +-
>  .../14-support-out-of-tree-config.patch       |  202 +-
>  .../16-fix-space-to-de-select-options.patch   |   19 +-
>  .../kconfig/patches/17-backport-kecho.patch   |   26 -
>  ...fig.sh-create-temporary-files-in-tmp.patch |   19 +-
>  ...e_config.sh-add-br2-external-support.patch |   24 +-
>  ...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 |   24 +-
>  ...llow-only-config-comment-and-if-insi.patch |  956 ++++
>  support/kconfig/patches/series                |    3 +-
>  support/kconfig/preprocess.c                  |  580 +++
>  support/kconfig/preprocess.h                  |   19 +
>  support/kconfig/qconf-cfg.sh                  |   40 +
>  support/kconfig/qconf.cc                      | 1199 ++---
>  support/kconfig/qconf.h                       |  163 +-
>  support/kconfig/streamline_config.pl          |  104 +-
>  support/kconfig/symbol.c                      |  374 +-
>  support/kconfig/util.c                        |  122 +-
>  support/kconfig/zconf.l                       |  372 --
>  support/kconfig/zconf.lex.c_shipped           | 2500 ----------
>  support/kconfig/zconf.tab.c_shipped           | 2488 ----------
>  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 +-
>  .../toolchain-external-synopsys-arc/Config.in |    2 +-
>  112 files changed, 13001 insertions(+), 10420 deletions(-)
>  create mode 100644 support/kconfig/Kbuild.include
>  delete mode 100644 support/kconfig/POTFILES.in
>  create mode 100644 support/kconfig/array_size.h
>  delete mode 100755 support/kconfig/check.sh
>  delete mode 100644 support/kconfig/foo.h
>  create mode 100755 support/kconfig/gconf-cfg.sh
>  create mode 100644 support/kconfig/hashtable.h
>  create mode 100644 support/kconfig/images.h
>  create mode 100644 support/kconfig/internal.h
>  delete mode 100644 support/kconfig/kconf_id.c
>  delete mode 100644 support/kconfig/kxgettext.c
>  create mode 100644 support/kconfig/lexer.l
>  create mode 100644 support/kconfig/lexer.lex.c_shipped
>  create mode 100644 support/kconfig/list_types.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
>  rename support/kconfig/{zconf.y => parser.y} (56%)
>  delete mode 100644 support/kconfig/patches/11-use-mktemp-for-lxdialog.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
>  create mode 100644 support/kconfig/patches/24-Revert-kconfig-allow-only-config-comment-and-if-insi.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
> 

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=')
  2026-02-04 15:43 ` [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=') Titouan Christophe via buildroot
@ 2026-05-12 21:33   ` Petr Vorel
  0 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-05-12 21:33 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: Edgar Bonet, buildroot, Kanak Shilledar, Peter Seiderer,
	Yann E. MORIN

Hi all,

[ Cc Kanak, Edgar involved in a fix for an old version [2] ]

> - reference environment variables directly (remove 'option env='), see
>   upstream commit [1]:

>   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

I'm very sorry for late reply.

Unfortunately this patch does not apply:

error: patch failed: Config.in:15
error: Config.in: patch does not apply
error: patch failed: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in:1
error: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in: patch does not apply
error: patch failed: toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in:1
error: toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in: patch does not apply
error: patch failed: toolchain/toolchain-external/toolchain-external-arm-arm/Config.in:7
error: toolchain/toolchain-external/toolchain-external-arm-arm/Config.in: patch does not apply
Patch failed at 0001 support/kconfig: reference environment variables directly (remove 'option env=')

@Titouan (or Peter) could you please send a new version?

It'd be also great if you address concerns raised by Peter and Yann.

Kind regards,
Petr

> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=104daea149c45cc84842ce77a9bd6436d19f3dd8
[2] https://lore.kernel.org/buildroot/1d003106-63b6-49d5-90c0-4f7c0f2f1f79@grenoble.cnrs.fr/
[3] https://lore.kernel.org/buildroot/20260205082847.4b855528@pc-1/

> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
> ---
>  Config.in                                     | 47 +++++--------------
>  Config.in.legacy                              |  6 +--
>  linux/Config.ext.in                           |  2 +-
>  package/amlogic-boot-fip/Config.in.host       |  2 +-
>  package/erlang/Config.in                      |  6 +--
>  package/flutter-sdk-bin/Config.in.host        |  2 +-
>  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 +--
>  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 +-
>  .../toolchain-external-synopsys-arc/Config.in |  2 +-
>  30 files changed, 78 insertions(+), 103 deletions(-)

> diff --git a/Config.in b/Config.in
> index bb70964609..85cdb3b413 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
> @@ -15,63 +15,46 @@ config BR2_HAVE_DOT_CONFIG
>  config BR2_BROKEN
>  	bool

> -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"
> -
>  # 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
> @@ -223,14 +206,10 @@ 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.
> @@ -1026,4 +1005,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 2971699c78..5dc86189b7 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/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/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/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 7f29e7a489..271e3fa029 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 633201b38c..1681e8976f 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 c3e9a13f39..2de23d3edc 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 db3b1570ef..cb764f0c9b 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/system/Config.in b/system/Config.in
> index 98bbd93092..47b22cb697 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 831387bc4e..11f107b41e 100644
> --- a/toolchain/toolchain-external/Config.in
> +++ b/toolchain/toolchain-external/Config.in
> @@ -29,7 +29,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 3a71e1356b..bf31e34c8f 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 14.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_15
>  	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 8582fe0ec8..dcdb925e6c 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 14.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_15
>  	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 7b1a7fb27f..95237a1735 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_15
>  	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-synopsys-arc/Config.in b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> index 07688a1416..2847b34007 100644
> --- a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> @@ -3,7 +3,7 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
>  	depends on BR2_arc750d || BR2_arc770d || \
>  		BR2_archs38_64mpy || BR2_archs38_full || \
>  		BR2_archs4x_rel31 || BR2_archs4x
> -	depends on BR2_HOSTARCH = "x86_64"
> +	depends on "$(HOSTARCH)" = "x86_64"
>  	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_15
>  	# The toolchains have libncurses and libexpat in their
>  	# sysroot, confusing Buildroot and causing build
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH v3 3/7] support/kconfig: bump to linux-v6.9-rc5 version
       [not found] ` <20260204154340.766528-4-titouan.christophe@mind.be>
@ 2026-05-12 21:35   ` Petr Vorel
  0 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2026-05-12 21:35 UTC (permalink / raw)
  To: Titouan Christophe; +Cc: Peter Seiderer, buildroot

Hi all,

This got slightly outdated (now it could be 7.1-rc3), but update can be done
later. Having this finished with slightly older kernel than latest would be a
big improvement.

Kind regards,
Petr
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-05-12 21:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04 15:43 [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Titouan Christophe via buildroot
2026-02-04 15:43 ` [Buildroot] [PATCH v3 1/7] support/kconfig: fix invalid filenames in patch 23 Titouan Christophe via buildroot
2026-02-04 15:43 ` [Buildroot] [PATCH v3 2/7] Config.in: do not expand TOPDIR, BASE_DIR and CONFIG_DIR Titouan Christophe via buildroot
2026-02-04 15:43 ` [Buildroot] [PATCH v3 4/7] support/kconfig: reference environment variables directly (remove 'option env=') Titouan Christophe via buildroot
2026-05-12 21:33   ` Petr Vorel
2026-02-04 15:43 ` [Buildroot] [PATCH v3 5/7] package/openssl: move libopenssl/libressl/.br2-external.in.openssl source statements outside of the choice Titouan Christophe via buildroot
2026-02-04 15:43 ` [Buildroot] [PATCH v3 6/7] docs: update the Buildroot manual for kconfig variables expansion Titouan Christophe via buildroot
2026-02-04 15:43 ` [Buildroot] [PATCH v3 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
2026-02-05  7:28 ` [Buildroot] [PATCH v3 0/7] Update kconfig infrastructure Peter Seiderer via buildroot
     [not found] ` <20260204154340.766528-4-titouan.christophe@mind.be>
2026-05-12 21:35   ` [Buildroot] [PATCH v3 3/7] support/kconfig: bump to linux-v6.9-rc5 version Petr Vorel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox