All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS"
@ 2026-10-20 20:26 Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 2/4] Revert "arch: mark a set of target configurations as secondary" Julien Olivain via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-20 20:26 UTC (permalink / raw)
  To: buildroot; +Cc: Mark Corbin, Thomas Petazzoni, Julien Olivain

The initial attempt to make secondary configurations to be selected
less frequently by autobuilders is not working as expected. It was
observed that the i686 architecture was selected most of the time,
because it is currently the default choice. We revert this
implementation to propose a new one.

This reverts commit 4642f903cd613bc52f9bb8ea94c4d0ab18464c92.

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 Config.in | 4 ----
 Makefile  | 7 -------
 2 files changed, 11 deletions(-)

diff --git a/Config.in b/Config.in
index ac58c685d1..09806f5cb4 100644
--- a/Config.in
+++ b/Config.in
@@ -15,10 +15,6 @@ config BR2_HAVE_DOT_CONFIG
 config BR2_BROKEN
 	bool
 
-config BR2_HIDE_SECONDARY_TARGET_OPTIONS
-	bool
-	option env="BR2_HIDE_SECONDARY_TARGET_OPTIONS"
-
 config BR2_VERSION
 	string
 	option env="BR2_VERSION_FULL"
diff --git a/Makefile b/Makefile
index 490f1d419d..9b62da3e40 100644
--- a/Makefile
+++ b/Makefile
@@ -258,13 +258,6 @@ export LANG = C
 export LC_ALL = C
 endif
 
-# we set a default value here to avoid a Kconfig warning about unset
-# environment varilable. This option is passed as an environment
-# variable to be controlled by autobuilders. The purpose is to test
-# less frequently some uncommon configurations which tend to generate
-# more build failures.
-export BR2_HIDE_SECONDARY_TARGET_OPTIONS ?= n
-
 # To put more focus on warnings, be less verbose as default
 # Use 'make V=1' to see the full commands
 ifeq ("$(origin V)", "command line")
-- 
2.56.0

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

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

* [Buildroot] [PATCH 2/4] Revert "arch: mark a set of target configurations as secondary"
  2026-10-20 20:26 [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Julien Olivain via buildroot
@ 2026-10-20 20:26 ` Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 3/4] utils/genrandconfig: implement secondary configurations filter Julien Olivain via buildroot
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 14+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-20 20:26 UTC (permalink / raw)
  To: buildroot; +Cc: Mark Corbin, Thomas Petazzoni, Julien Olivain

The initial attempt to make secondary configurations to be selected
less frequently by autobuilders is not working as expected. It was
observed that the i686 architecture was selected most of the time,
because it is currently the default choice. We revert this
implementation to propose a new one.

This reverts commit ddce0814a794b27a6449b144f85c90fa53e92ac6.

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 arch/Config.in       | 19 -------------------
 arch/Config.in.arm   |  5 -----
 arch/Config.in.riscv |  2 --
 arch/Config.in.x86   |  3 ---
 4 files changed, 29 deletions(-)

diff --git a/arch/Config.in b/arch/Config.in
index 863a1eed34..7bfa174b5f 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -23,7 +23,6 @@ choice
 
 config BR2_arcle
 	bool "ARC (little endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  Synopsys' DesignWare ARC Processor Cores are a family of
@@ -42,7 +41,6 @@ config BR2_arm
 
 config BR2_armeb
 	bool "ARM (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  ARM is a 32-bit reduced instruction set computer (RISC)
@@ -61,7 +59,6 @@ config BR2_aarch64
 
 config BR2_aarch64_be
 	bool "AArch64 (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARCH_IS_64
 	help
 	  Aarch64 is a 64-bit architecture developed by ARM Holdings.
@@ -70,7 +67,6 @@ config BR2_aarch64_be
 
 config BR2_hppa
 	bool "HPPA"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  Precision Architecture (a.k.a. PA-RISC) is a 32-bit
@@ -86,7 +82,6 @@ config BR2_i386
 
 config BR2_loongarch64
 	bool "LoongArch64"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	select BR2_ARCH_IS_64
 	select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
@@ -97,7 +92,6 @@ config BR2_loongarch64
 
 config BR2_m68k
 	bool "m68k"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	# MMU support is set by the subarchitecture file, arch/Config.in.m68k
 	help
 	  Motorola 68000 family microprocessor
@@ -105,7 +99,6 @@ config BR2_m68k
 
 config BR2_microblazeel
 	bool "Microblaze AXI (little endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
@@ -115,7 +108,6 @@ config BR2_microblazeel
 
 config BR2_microblazebe
 	bool "Microblaze non-AXI (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
@@ -125,7 +117,6 @@ config BR2_microblazebe
 
 config BR2_mips
 	bool "MIPS (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  MIPS is a RISC microprocessor from MIPS Technologies. Big
@@ -135,7 +126,6 @@ config BR2_mips
 
 config BR2_mipsel
 	bool "MIPS (little endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  MIPS is a RISC microprocessor from MIPS Technologies. Little
@@ -145,7 +135,6 @@ config BR2_mipsel
 
 config BR2_mips64
 	bool "MIPS64 (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARCH_IS_64
 	select BR2_USE_MMU
 	help
@@ -166,7 +155,6 @@ config BR2_mips64el
 
 config BR2_or1k
 	bool "OpenRISC"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  OpenRISC is a free and open processor for embedded system.
@@ -174,7 +162,6 @@ config BR2_or1k
 
 config BR2_powerpc
 	bool "PowerPC"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  PowerPC is a RISC architecture created by Apple-IBM-Motorola
@@ -184,7 +171,6 @@ config BR2_powerpc
 
 config BR2_powerpc64
 	bool "PowerPC64 (big endian)"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARCH_IS_64
 	select BR2_USE_MMU
 	help
@@ -215,7 +201,6 @@ config BR2_riscv
 
 config BR2_s390x
 	bool "s390x"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARCH_IS_64
 	select BR2_USE_MMU
 	help
@@ -225,7 +210,6 @@ config BR2_s390x
 
 config BR2_sh
 	bool "SuperH"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  SuperH (or SH) is a 32-bit reduced instruction set computer
@@ -236,7 +220,6 @@ config BR2_sh
 
 config BR2_sparc
 	bool "SPARC"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_USE_MMU
 	help
 	  SPARC (from Scalable Processor Architecture) is a RISC
@@ -247,7 +230,6 @@ config BR2_sparc
 
 config BR2_sparc64
 	bool "SPARC64"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARCH_IS_64
 	select BR2_USE_MMU
 	help
@@ -268,7 +250,6 @@ config BR2_x86_64
 
 config BR2_xtensa
 	bool "Xtensa"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	# MMU support is set by the subarchitecture file, arch/Config.in.xtensa
 	help
 	  Xtensa is a Tensilica processor IP architecture.
diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index 5c9037c959..eb5babe29b 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -112,27 +112,22 @@ choice
 
 if !BR2_ARCH_IS_64
 comment "armv4 cores"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 config BR2_arm920t
 	bool "arm920t"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARM_CPU_HAS_ARM
 	select BR2_ARM_CPU_HAS_THUMB
 	select BR2_ARM_CPU_ARMV4
 config BR2_arm922t
 	bool "arm922t"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARM_CPU_HAS_ARM
 	select BR2_ARM_CPU_HAS_THUMB
 	select BR2_ARM_CPU_ARMV4
 config BR2_fa526
 	bool "fa526/626"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARM_CPU_HAS_ARM
 	select BR2_ARM_CPU_ARMV4
 config BR2_strongarm
 	bool "strongarm sa110/sa1100"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	select BR2_ARM_CPU_HAS_ARM
 	select BR2_ARM_CPU_ARMV4
 
diff --git a/arch/Config.in.riscv b/arch/Config.in.riscv
index 8801590d80..299190f364 100644
--- a/arch/Config.in.riscv
+++ b/arch/Config.in.riscv
@@ -58,12 +58,10 @@ choice
 
 config BR2_RISCV_32
 	bool "32-bit"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 
 config BR2_RISCV_64
 	bool "64-bit"
 	select BR2_ARCH_IS_64
-	select BR2_RISCV_USE_MMU if BR2_HIDE_SECONDARY_TARGET_OPTIONS
 
 endchoice
 
diff --git a/arch/Config.in.x86 b/arch/Config.in.x86
index 51b157409f..0a6d80bf03 100644
--- a/arch/Config.in.x86
+++ b/arch/Config.in.x86
@@ -50,15 +50,12 @@ choice
 
 config BR2_x86_i486
 	bool "i486"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	depends on !BR2_x86_64
 config BR2_x86_i586
 	bool "i586"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	depends on !BR2_x86_64
 config BR2_x86_x1000
 	bool "x1000"
-	depends on !BR2_HIDE_SECONDARY_TARGET_OPTIONS
 	depends on !BR2_x86_64
 	help
 	  The Intel X1000 is a Pentium class microprocessor in the
-- 
2.56.0

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

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

* [Buildroot] [PATCH 3/4] utils/genrandconfig: implement secondary configurations filter
  2026-10-20 20:26 [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 2/4] Revert "arch: mark a set of target configurations as secondary" Julien Olivain via buildroot
@ 2026-10-20 20:26 ` Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
  2026-10-21 19:23 ` [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Thomas Petazzoni via buildroot
  3 siblings, 0 replies; 14+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-20 20:26 UTC (permalink / raw)
  To: buildroot; +Cc: Mark Corbin, Thomas Petazzoni, Julien Olivain

Buildroot commit [1] marked a set of target configurations as
"secondary", with the intent to test those less frequently in
autobuilders. This was implemented by adding a Kconfig "depends on
!BR2_HIDE_SECONDARY_TARGET_OPTIONS" which was controlled by an
environment variable that could be set by the "autobuild-run"
script. It turns out that "make randconfig" is not selecting random
configs amongst the available options (i.e. following the
dependencies). Instead, it selects fully random options, and if a
dependency could not be met, the default choice is taken. As a
result, every time a secondary architecture needed to be filtered
out, the default architecture was selected instead, which is
currently i686 at the time of this commit.

This commit reimplement the list of secondary configurations
initially made in commit [1] as a filter in the
"utils/genrandcondig" script. This commit also adds the following
x86 i586 CPUs which were missed in commit [1]:
c3, geode, pentium_mmx, winchip2, winchip_c6

Since "utils/genrandcondig" is called from "autobuild-run",
this commit fixes the too frequent i686 architecture issue.

[1] https://gitlab.com/buildroot.org/buildroot/-/commit/ddce0814a794b27a6449b144f85c90fa53e92ac6

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 utils/genrandconfig | 49 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/utils/genrandconfig b/utils/genrandconfig
index 5cea529354..e6655fe189 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -99,7 +99,46 @@ class SystemInfo:
         return not missing_requirements
 
 
-async def fixup_config(sysinfo, configfile):
+def is_secondary_config(configlines):
+    """Identify secondary configurations.
+
+    This function identifies configurations considered as
+    "secondary". This classification can be used to skip those less
+    frequent configurations.
+
+    Returns: 'True' if the configuration is considered as "secondary",
+    or 'False' otherwise.
+    """
+
+    secondary_configs = [
+        # Secondary architectures (including all CPUs)
+        "arcle", "armeb", "aarch64_be", "hppa", "loongarch64", "m68k",
+        "microblazeel", "microblazebe", "mips", "mipsel", "mips64",
+        "or1k", "powerpc", "powerpc64", "s390x", "sh", "sparc",
+        "sparc64", "xtensa",
+        # Secondary CPUs:
+        # Armv4 CPUs:
+        "arm920t", "arm922t", "fa526", "strongarm",
+        # Older 32bit CPUs before i686:
+        "x86_c3", "x86_geode", "x86_i486", "x86_i586",
+        "x86_pentium_mmx", "x86_winchip2", "x86_winchip_c6",
+        "x86_x1000",
+        # All RISC-V 32-bit:
+        "RISCV_32"
+    ]
+    for cfg in secondary_configs:
+        if f"BR2_{cfg}=y\n" in configlines:
+            return True
+
+    # We also mark RISC-V 64-bit noMMU as secondary
+    if "BR2_RISCV_64=y\n" in configlines and \
+       "BR2_RISCV_USE_MMU=y\n" not in configlines:
+        return True
+
+    return False
+
+
+async def fixup_config(sysinfo, configfile, skip_secondary_configs=True):
     """Finalize the configuration and reject any problematic combinations
 
     This function returns 'True' when the configuration has been
@@ -113,6 +152,9 @@ async def fixup_config(sysinfo, configfile):
 
     ROOTFS_SIZE = '5G'
 
+    if skip_secondary_configs and is_secondary_config(configlines):
+        return False
+
     # libffi not available on ARMv7-M, but propagating libffi arch
     # dependencies in Buildroot is really too much work, so we handle
     # this here.
@@ -530,6 +572,9 @@ async def gen_config(args):
     else:
         configfile = os.path.join(args.outputdir, ".config")
 
+    # Skip secondary configurations 90% of the time
+    skip_secondary_configs = randint(0, 9) != 0
+
     # Now, generate the random selection of packages, and fixup
     # things if needed.
     # Safe-guard, in case we can not quickly come to a valid
@@ -553,7 +598,7 @@ async def gen_config(args):
         if ret:
             return ret
 
-        if await fixup_config(sysinfo, configfile):
+        if await fixup_config(sysinfo, configfile, skip_secondary_configs):
             print("  configuration valid")
             break
 
-- 
2.56.0

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

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

* [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-20 20:26 [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 2/4] Revert "arch: mark a set of target configurations as secondary" Julien Olivain via buildroot
  2026-10-20 20:26 ` [Buildroot] [PATCH 3/4] utils/genrandconfig: implement secondary configurations filter Julien Olivain via buildroot
@ 2026-10-20 20:26 ` Julien Olivain via buildroot
  2026-10-21 19:37   ` Fiona Klute via buildroot
                     ` (2 more replies)
  2026-10-21 19:23 ` [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Thomas Petazzoni via buildroot
  3 siblings, 3 replies; 14+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-20 20:26 UTC (permalink / raw)
  To: buildroot; +Cc: Mark Corbin, Thomas Petazzoni, Julien Olivain

This commit switches the default target architecture in arch/Config.in
from i686 to AArch64. AArch64 is now one of the most common
architecture on embedded Linux systems. The default CPU for this
architecture remains the Cortex-A53 (Armv8.0).

While at it, this commit also refreshes the .defconfig to:
- align to this new default,
- remove stale options (BR2_alpha, BR2_cris, BR2_ia64)
- add the missing options

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 .defconfig     | 60 ++++++++++++++++++++------------------------------
 arch/Config.in |  2 +-
 2 files changed, 25 insertions(+), 37 deletions(-)

diff --git a/.defconfig b/.defconfig
index d25c62e104..56785b2bc3 100644
--- a/.defconfig
+++ b/.defconfig
@@ -1,50 +1,38 @@
 #
-# Automatically generated make config: don't edit
-# Mon Feb 18 09:11:56 2008
+# Automatically generated file; DO NOT EDIT.
+# Buildroot 2026.08 Configuration
 #
 BR2_HAVE_DOT_CONFIG=y
-# BR2_alpha is not set
+
+#
+# Target options
+#
+# BR2_arcle is not set
 # BR2_arm is not set
 # BR2_armeb is not set
-# BR2_cris is not set
-# BR2_ia64 is not set
-BR2_i386=y
+BR2_aarch64=y
+# BR2_aarch64_be is not set
+# BR2_hppa is not set
+# BR2_i386 is not set
+# BR2_loongarch64 is not set
 # BR2_m68k is not set
+# BR2_microblazeel is not set
+# BR2_microblazebe is not set
 # BR2_mips is not set
 # BR2_mipsel is not set
+# BR2_mips64 is not set
+# BR2_mips64el is not set
+# BR2_or1k is not set
 # BR2_powerpc is not set
+# BR2_powerpc64 is not set
+# BR2_powerpc64le is not set
+# BR2_riscv is not set
+# BR2_s390x is not set
 # BR2_sh is not set
 # BR2_sparc is not set
 # BR2_sparc64 is not set
 # BR2_x86_64 is not set
-# BR2_x86_i486 is not set
-# BR2_x86_i586 is not set
-BR2_x86_i686=y
-# BR2_x86_pentiumpro is not set
-# BR2_x86_pentium_mmx is not set
-# BR2_x86_pentium_m is not set
-# BR2_x86_pentium2 is not set
-# BR2_x86_pentium3 is not set
-# BR2_x86_pentium4 is not set
-# BR2_x86_prescott is not set
-# BR2_x86_nocona is not set
-# BR2_x86_core2 is not set
-# BR2_x86_k6 is not set
-# BR2_x86_k6_2 is not set
-# BR2_x86_athlon is not set
-# BR2_x86_athlon_4 is not set
-# BR2_x86_opteron is not set
-# BR2_x86_opteron_sse3 is not set
-# BR2_x86_barcelona is not set
-# BR2_x86_geode is not set
-# BR2_x86_c3 is not set
-# BR2_x86_winchip_c6 is not set
-# BR2_x86_winchip2 is not set
-BR2_ARCH="i686"
+# BR2_xtensa is not set
+BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y
+BR2_ARCH="aarch64"
 BR2_ENDIAN="LITTLE"
-BR2_GCC_TARGET_TUNE="i686"
-BR2_GCC_TARGET_ARCH="i686"
-
-#
-# Target options
-#
diff --git a/arch/Config.in b/arch/Config.in
index 7bfa174b5f..0f1697597e 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -17,7 +17,7 @@ config BR2_ARCH_HAS_FDPIC_SUPPORT
 
 choice
 	prompt "Target Architecture"
-	default BR2_i386
+	default BR2_aarch64
 	help
 	  Select the target architecture family to build for.
 
-- 
2.56.0

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

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

* Re: [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS"
  2026-10-20 20:26 [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Julien Olivain via buildroot
                   ` (2 preceding siblings ...)
  2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
@ 2026-10-21 19:23 ` Thomas Petazzoni via buildroot
  3 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-21 19:23 UTC (permalink / raw)
  To: Julien Olivain; +Cc: buildroot, Mark Corbin

On Tue, Oct 20, 2026 at 10:26:36PM +0200, Julien Olivain via buildroot wrote:
> The initial attempt to make secondary configurations to be selected
> less frequently by autobuilders is not working as expected. It was
> observed that the i686 architecture was selected most of the time,
> because it is currently the default choice. We revert this
> implementation to propose a new one.
> 
> This reverts commit 4642f903cd613bc52f9bb8ea94c4d0ab18464c92.
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>

I've applied PATCH 1, 2 and 3, which are obviously
non-controversial. I'm waiting for some consensus on PATCH 4/4.

Thanks!

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
@ 2026-10-21 19:37   ` Fiona Klute via buildroot
  2026-10-22  9:36   ` Arnout Vandecappelle via buildroot
  2026-10-25 20:57   ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 14+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-21 19:37 UTC (permalink / raw)
  To: Julien Olivain, buildroot; +Cc: Mark Corbin, Thomas Petazzoni

Am 20.10.26 um 22:26 schrieb Julien Olivain via buildroot:
> This commit switches the default target architecture in arch/Config.in
> from i686 to AArch64. AArch64 is now one of the most common
> architecture on embedded Linux systems. The default CPU for this
> architecture remains the Cortex-A53 (Armv8.0).

Seems reasonable to me. And in any case AArch64 is way more common than 
i386. ;-)

Reviewed-by: Fiona Klute <fiona.klute@gmx.de>

> While at it, this commit also refreshes the .defconfig to:
> - align to this new default,
> - remove stale options (BR2_alpha, BR2_cris, BR2_ia64)
> - add the missing options
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>
> ---
>   .defconfig     | 60 ++++++++++++++++++++------------------------------
>   arch/Config.in |  2 +-
>   2 files changed, 25 insertions(+), 37 deletions(-)
> 
> diff --git a/.defconfig b/.defconfig
> index d25c62e104..56785b2bc3 100644
> --- a/.defconfig
> +++ b/.defconfig
> @@ -1,50 +1,38 @@
>   #
> -# Automatically generated make config: don't edit
> -# Mon Feb 18 09:11:56 2008
> +# Automatically generated file; DO NOT EDIT.
> +# Buildroot 2026.08 Configuration
>   #
>   BR2_HAVE_DOT_CONFIG=y
> -# BR2_alpha is not set
> +
> +#
> +# Target options
> +#
> +# BR2_arcle is not set
>   # BR2_arm is not set
>   # BR2_armeb is not set
> -# BR2_cris is not set
> -# BR2_ia64 is not set
> -BR2_i386=y
> +BR2_aarch64=y
> +# BR2_aarch64_be is not set
> +# BR2_hppa is not set
> +# BR2_i386 is not set
> +# BR2_loongarch64 is not set
>   # BR2_m68k is not set
> +# BR2_microblazeel is not set
> +# BR2_microblazebe is not set
>   # BR2_mips is not set
>   # BR2_mipsel is not set
> +# BR2_mips64 is not set
> +# BR2_mips64el is not set
> +# BR2_or1k is not set
>   # BR2_powerpc is not set
> +# BR2_powerpc64 is not set
> +# BR2_powerpc64le is not set
> +# BR2_riscv is not set
> +# BR2_s390x is not set
>   # BR2_sh is not set
>   # BR2_sparc is not set
>   # BR2_sparc64 is not set
>   # BR2_x86_64 is not set
> -# BR2_x86_i486 is not set
> -# BR2_x86_i586 is not set
> -BR2_x86_i686=y
> -# BR2_x86_pentiumpro is not set
> -# BR2_x86_pentium_mmx is not set
> -# BR2_x86_pentium_m is not set
> -# BR2_x86_pentium2 is not set
> -# BR2_x86_pentium3 is not set
> -# BR2_x86_pentium4 is not set
> -# BR2_x86_prescott is not set
> -# BR2_x86_nocona is not set
> -# BR2_x86_core2 is not set
> -# BR2_x86_k6 is not set
> -# BR2_x86_k6_2 is not set
> -# BR2_x86_athlon is not set
> -# BR2_x86_athlon_4 is not set
> -# BR2_x86_opteron is not set
> -# BR2_x86_opteron_sse3 is not set
> -# BR2_x86_barcelona is not set
> -# BR2_x86_geode is not set
> -# BR2_x86_c3 is not set
> -# BR2_x86_winchip_c6 is not set
> -# BR2_x86_winchip2 is not set
> -BR2_ARCH="i686"
> +# BR2_xtensa is not set
> +BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y
> +BR2_ARCH="aarch64"
>   BR2_ENDIAN="LITTLE"
> -BR2_GCC_TARGET_TUNE="i686"
> -BR2_GCC_TARGET_ARCH="i686"
> -
> -#
> -# Target options
> -#
> diff --git a/arch/Config.in b/arch/Config.in
> index 7bfa174b5f..0f1697597e 100644
> --- a/arch/Config.in
> +++ b/arch/Config.in
> @@ -17,7 +17,7 @@ config BR2_ARCH_HAS_FDPIC_SUPPORT
>   
>   choice
>   	prompt "Target Architecture"
> -	default BR2_i386
> +	default BR2_aarch64
>   	help
>   	  Select the target architecture family to build for.
>   
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
  2026-10-21 19:37   ` Fiona Klute via buildroot
@ 2026-10-22  9:36   ` Arnout Vandecappelle via buildroot
  2026-10-22  9:43     ` Baruch Siach via buildroot
  2026-10-25 20:57   ` Thomas Petazzoni via buildroot
  2 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2026-10-22  9:36 UTC (permalink / raw)
  To: Julien Olivain, buildroot; +Cc: Mark Corbin, Thomas Petazzoni



On 20/10/2026 22:26, Julien Olivain via buildroot wrote:
> This commit switches the default target architecture in arch/Config.in
> from i686 to AArch64. AArch64 is now one of the most common
> architecture on embedded Linux systems. The default CPU for this
> architecture remains the Cortex-A53 (Armv8.0).
> 
> While at it, this commit also refreshes the .defconfig to:

  Do we even need this .defconfig file? Isn't that a leftover from very, very, 
very old Kconfig?

> - align to this new default,
> - remove stale options (BR2_alpha, BR2_cris, BR2_ia64)
> - add the missing options
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>

  I'm the one who proposed the change to aarch64 as default, so

Acked-by: Arnout Vandecappelle <arnout@rnout.be>


  Regards,
  Arnout

> ---
>   .defconfig     | 60 ++++++++++++++++++++------------------------------
>   arch/Config.in |  2 +-
>   2 files changed, 25 insertions(+), 37 deletions(-)
> 
> diff --git a/.defconfig b/.defconfig
> index d25c62e104..56785b2bc3 100644
> --- a/.defconfig
> +++ b/.defconfig
> @@ -1,50 +1,38 @@
>   #
> -# Automatically generated make config: don't edit
> -# Mon Feb 18 09:11:56 2008
> +# Automatically generated file; DO NOT EDIT.
> +# Buildroot 2026.08 Configuration
>   #
>   BR2_HAVE_DOT_CONFIG=y
> -# BR2_alpha is not set
> +
> +#
> +# Target options
> +#
> +# BR2_arcle is not set
>   # BR2_arm is not set
>   # BR2_armeb is not set
> -# BR2_cris is not set
> -# BR2_ia64 is not set
> -BR2_i386=y
> +BR2_aarch64=y
> +# BR2_aarch64_be is not set
> +# BR2_hppa is not set
> +# BR2_i386 is not set
> +# BR2_loongarch64 is not set
>   # BR2_m68k is not set
> +# BR2_microblazeel is not set
> +# BR2_microblazebe is not set
>   # BR2_mips is not set
>   # BR2_mipsel is not set
> +# BR2_mips64 is not set
> +# BR2_mips64el is not set
> +# BR2_or1k is not set
>   # BR2_powerpc is not set
> +# BR2_powerpc64 is not set
> +# BR2_powerpc64le is not set
> +# BR2_riscv is not set
> +# BR2_s390x is not set
>   # BR2_sh is not set
>   # BR2_sparc is not set
>   # BR2_sparc64 is not set
>   # BR2_x86_64 is not set
> -# BR2_x86_i486 is not set
> -# BR2_x86_i586 is not set
> -BR2_x86_i686=y
> -# BR2_x86_pentiumpro is not set
> -# BR2_x86_pentium_mmx is not set
> -# BR2_x86_pentium_m is not set
> -# BR2_x86_pentium2 is not set
> -# BR2_x86_pentium3 is not set
> -# BR2_x86_pentium4 is not set
> -# BR2_x86_prescott is not set
> -# BR2_x86_nocona is not set
> -# BR2_x86_core2 is not set
> -# BR2_x86_k6 is not set
> -# BR2_x86_k6_2 is not set
> -# BR2_x86_athlon is not set
> -# BR2_x86_athlon_4 is not set
> -# BR2_x86_opteron is not set
> -# BR2_x86_opteron_sse3 is not set
> -# BR2_x86_barcelona is not set
> -# BR2_x86_geode is not set
> -# BR2_x86_c3 is not set
> -# BR2_x86_winchip_c6 is not set
> -# BR2_x86_winchip2 is not set
> -BR2_ARCH="i686"
> +# BR2_xtensa is not set
> +BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y
> +BR2_ARCH="aarch64"
>   BR2_ENDIAN="LITTLE"
> -BR2_GCC_TARGET_TUNE="i686"
> -BR2_GCC_TARGET_ARCH="i686"
> -
> -#
> -# Target options
> -#
> diff --git a/arch/Config.in b/arch/Config.in
> index 7bfa174b5f..0f1697597e 100644
> --- a/arch/Config.in
> +++ b/arch/Config.in
> @@ -17,7 +17,7 @@ config BR2_ARCH_HAS_FDPIC_SUPPORT
>   
>   choice
>   	prompt "Target Architecture"
> -	default BR2_i386
> +	default BR2_aarch64
>   	help
>   	  Select the target architecture family to build for.
>   

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

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-22  9:36   ` Arnout Vandecappelle via buildroot
@ 2026-10-22  9:43     ` Baruch Siach via buildroot
  2026-10-23 11:23       ` Julien Olivain via buildroot
  2026-10-24 17:18       ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Arnout Vandecappelle via buildroot
  0 siblings, 2 replies; 14+ messages in thread
From: Baruch Siach via buildroot @ 2026-10-22  9:43 UTC (permalink / raw)
  To: Arnout Vandecappelle via buildroot
  Cc: Julien Olivain, Arnout Vandecappelle, Mark Corbin,
	Thomas Petazzoni

Hi Arnout,

On Thu, Oct 22 2026, Arnout Vandecappelle via buildroot wrote:
> On 20/10/2026 22:26, Julien Olivain via buildroot wrote:
>> This commit switches the default target architecture in arch/Config.in
>> from i686 to AArch64. AArch64 is now one of the most common
>> architecture on embedded Linux systems. The default CPU for this
>> architecture remains the Cortex-A53 (Armv8.0).
>> While at it, this commit also refreshes the .defconfig to:
>
>  Do we even need this .defconfig file? Isn't that a leftover from very, very,
>  very old Kconfig?

.defconfig seems to be Buildroot specific:

support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch:
Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
@@ -30,7 +30,7 @@ static void conf_message(const char *fmt
 static const char *conf_filename;
 static int conf_lineno, conf_warnings;
 
-const char conf_defname[] = "arch/$ARCH/defconfig";
+const char conf_defname[] = ".defconfig";
 
 static void conf_warning(const char *fmt, ...)
 {

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-22  9:43     ` Baruch Siach via buildroot
@ 2026-10-23 11:23       ` Julien Olivain via buildroot
  2026-10-24 17:08         ` [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig Arnout Vandecappelle via buildroot
  2026-10-24 17:18       ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Arnout Vandecappelle via buildroot
  1 sibling, 1 reply; 14+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-23 11:23 UTC (permalink / raw)
  To: Baruch Siach
  Cc: Arnout Vandecappelle via buildroot, Arnout Vandecappelle,
	Mark Corbin, Thomas Petazzoni

Hi Baruch, Arnout,

On 22/10/2026 11:43, Baruch Siach via buildroot wrote:
> Hi Arnout,
> 
> On Thu, Oct 22 2026, Arnout Vandecappelle via buildroot wrote:
>> On 20/10/2026 22:26, Julien Olivain via buildroot wrote:
>>> This commit switches the default target architecture in 
>>> arch/Config.in
>>> from i686 to AArch64. AArch64 is now one of the most common
>>> architecture on embedded Linux systems. The default CPU for this
>>> architecture remains the Cortex-A53 (Armv8.0).
>>> While at it, this commit also refreshes the .defconfig to:
>> 
>>  Do we even need this .defconfig file? Isn't that a leftover from 
>> very, very,
>>  very old Kconfig?
> 
> .defconfig seems to be Buildroot specific:
> 
> support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch:
> Index: kconfig/confdata.c
> ===================================================================
> --- kconfig.orig/confdata.c
> +++ kconfig/confdata.c
> @@ -30,7 +30,7 @@ static void conf_message(const char *fmt
>  static const char *conf_filename;
>  static int conf_lineno, conf_warnings;
> 
> -const char conf_defname[] = "arch/$ARCH/defconfig";
> +const char conf_defname[] = ".defconfig";
> 
>  static void conf_warning(const char *fmt, ...)
>  {

This .defconfig file is still used, when running a simple
"make defconfig". If we remove it then run "make defconfig"
kconfig fails with error:

*** Can't find default configuration ".defconfig"!

Also, we can see that without the patch changing the default arch
to AArch64, running "make defconfig" generates a i686 config.
With the patch, we then have a aarch64 config.

There was indeed ancient leftovers in this .defconfig file.

> 
> baruch
> 
> --
>                                                      ~. .~   Tk Open 
> Systems
> =}------------------------------------------------ooO--U--Ooo------------{=
>    - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

Best regards,

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

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

* [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig
  2026-10-23 11:23       ` Julien Olivain via buildroot
@ 2026-10-24 17:08         ` Arnout Vandecappelle via buildroot
  2026-10-24 21:27           ` Thomas Petazzoni via buildroot
  2026-10-25  9:13           ` Peter Seiderer via buildroot
  0 siblings, 2 replies; 14+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2026-10-24 17:08 UTC (permalink / raw)
  To: buildroot; +Cc: Julien Olivain, Arnout Vandecappelle, Thomas Perale

For `make defconfig`, we use a .defconfig file. This is inherited from
the kernel, which has a different defconfig for each architecture. The
kernel defconfig passes ARCH on the command line rather than in Kconfig,
and defaults are very different for different architectures. In
Buildroot, we don't have that, instead we have a .defconfig file which
only has the default architecture. And it's not actually a defconfig,
it's a very old full .config where only the first part is kept.

Since we have architecture-independent defaults, and any architecture
specific things are expressed with "depend on" and an occasional
"default ... if ...", we don't need this infrastructure at all. We can
simply make .defconfig an empty file - the BR2_arch choice has a default
and that's all we need. And we don't even need an empty file, we have
/dev/null to do that job.

Use /dev/null for the "defconfig" target if no DEFCONFIG is given.
Remove the now unnecessary .defconfig.

Note that this also makes one hunk of
support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch redundant.
Let's not do the effort of removing it now, we can remove it if it
causes issues when updating the kconfig infrastructure.

Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
---
 .defconfig | 50 --------------------------------------------------
 Makefile   |  2 +-
 2 files changed, 1 insertion(+), 51 deletions(-)
 delete mode 100644 .defconfig

diff --git a/.defconfig b/.defconfig
deleted file mode 100644
index d25c62e104..0000000000
--- a/.defconfig
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Mon Feb 18 09:11:56 2008
-#
-BR2_HAVE_DOT_CONFIG=y
-# BR2_alpha is not set
-# BR2_arm is not set
-# BR2_armeb is not set
-# BR2_cris is not set
-# BR2_ia64 is not set
-BR2_i386=y
-# BR2_m68k is not set
-# BR2_mips is not set
-# BR2_mipsel is not set
-# BR2_powerpc is not set
-# BR2_sh is not set
-# BR2_sparc is not set
-# BR2_sparc64 is not set
-# BR2_x86_64 is not set
-# BR2_x86_i486 is not set
-# BR2_x86_i586 is not set
-BR2_x86_i686=y
-# BR2_x86_pentiumpro is not set
-# BR2_x86_pentium_mmx is not set
-# BR2_x86_pentium_m is not set
-# BR2_x86_pentium2 is not set
-# BR2_x86_pentium3 is not set
-# BR2_x86_pentium4 is not set
-# BR2_x86_prescott is not set
-# BR2_x86_nocona is not set
-# BR2_x86_core2 is not set
-# BR2_x86_k6 is not set
-# BR2_x86_k6_2 is not set
-# BR2_x86_athlon is not set
-# BR2_x86_athlon_4 is not set
-# BR2_x86_opteron is not set
-# BR2_x86_opteron_sse3 is not set
-# BR2_x86_barcelona is not set
-# BR2_x86_geode is not set
-# BR2_x86_c3 is not set
-# BR2_x86_winchip_c6 is not set
-# BR2_x86_winchip2 is not set
-BR2_ARCH="i686"
-BR2_ENDIAN="LITTLE"
-BR2_GCC_TARGET_TUNE="i686"
-BR2_GCC_TARGET_ARCH="i686"
-
-#
-# Target options
-#
diff --git a/Makefile b/Makefile
index 9b62da3e40..aa3826b5b4 100644
--- a/Makefile
+++ b/Makefile
@@ -1037,7 +1037,7 @@ oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmake
 	@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)
 
 defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
-	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
+	@$(COMMON_CONFIG_ENV) $< --defconfig=$(or $(DEFCONFIG),/dev/null) $(CONFIG_CONFIG_IN)
 
 %_defconfig: $(BUILD_DIR)/buildroot-config/conf  outputmakefile
 	@defconfig=$(or \
-- 
2.56.0

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

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-22  9:43     ` Baruch Siach via buildroot
  2026-10-23 11:23       ` Julien Olivain via buildroot
@ 2026-10-24 17:18       ` Arnout Vandecappelle via buildroot
  1 sibling, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2026-10-24 17:18 UTC (permalink / raw)
  To: Baruch Siach, Arnout Vandecappelle via buildroot
  Cc: Julien Olivain, Mark Corbin, Thomas Petazzoni



On 22/10/2026 11:43, Baruch Siach wrote:
> Hi Arnout,
> 
> On Thu, Oct 22 2026, Arnout Vandecappelle via buildroot wrote:
>> On 20/10/2026 22:26, Julien Olivain via buildroot wrote:
>>> This commit switches the default target architecture in arch/Config.in
>>> from i686 to AArch64. AArch64 is now one of the most common
>>> architecture on embedded Linux systems. The default CPU for this
>>> architecture remains the Cortex-A53 (Armv8.0).
>>> While at it, this commit also refreshes the .defconfig to:
>>
>>   Do we even need this .defconfig file? Isn't that a leftover from very, very,
>>   very old Kconfig?
> 
> .defconfig seems to be Buildroot specific:
> 
> support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch:
> Index: kconfig/confdata.c
> ===================================================================
> --- kconfig.orig/confdata.c
> +++ kconfig/confdata.c
> @@ -30,7 +30,7 @@ static void conf_message(const char *fmt
>   static const char *conf_filename;
>   static int conf_lineno, conf_warnings;
>   
> -const char conf_defname[] = "arch/$ARCH/defconfig";
> +const char conf_defname[] = ".defconfig";

  Well that's stupid... We don't need an architecture-specific defconfig, we 
don't need any file at all to "seed" the defconfig. So I've sent a patch to 
simplify that.


  Regards,
  Arnout

>   
>   static void conf_warning(const char *fmt, ...)
>   {
> 
> baruch
> 

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

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

* Re: [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig
  2026-10-24 17:08         ` [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig Arnout Vandecappelle via buildroot
@ 2026-10-24 21:27           ` Thomas Petazzoni via buildroot
  2026-10-25  9:13           ` Peter Seiderer via buildroot
  1 sibling, 0 replies; 14+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-24 21:27 UTC (permalink / raw)
  To: Arnout Vandecappelle; +Cc: buildroot, Julien Olivain, Thomas Perale

On Sat, Oct 24, 2026 at 07:08:30PM +0200, Arnout Vandecappelle via buildroot wrote:
> For `make defconfig`, we use a .defconfig file. This is inherited from
> the kernel, which has a different defconfig for each architecture. The
> kernel defconfig passes ARCH on the command line rather than in Kconfig,
> and defaults are very different for different architectures. In
> Buildroot, we don't have that, instead we have a .defconfig file which
> only has the default architecture. And it's not actually a defconfig,
> it's a very old full .config where only the first part is kept.
> 
> Since we have architecture-independent defaults, and any architecture
> specific things are expressed with "depend on" and an occasional
> "default ... if ...", we don't need this infrastructure at all. We can
> simply make .defconfig an empty file - the BR2_arch choice has a default
> and that's all we need. And we don't even need an empty file, we have
> /dev/null to do that job.
> 
> Use /dev/null for the "defconfig" target if no DEFCONFIG is given.
> Remove the now unnecessary .defconfig.
> 
> Note that this also makes one hunk of
> support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch redundant.
> Let's not do the effort of removing it now, we can remove it if it
> causes issues when updating the kconfig infrastructure.
> 
> Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>

Tested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

(Since this is RFC, I'm not applying right away, just voicing my
approval for this change.)

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig
  2026-10-24 17:08         ` [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig Arnout Vandecappelle via buildroot
  2026-10-24 21:27           ` Thomas Petazzoni via buildroot
@ 2026-10-25  9:13           ` Peter Seiderer via buildroot
  1 sibling, 0 replies; 14+ messages in thread
From: Peter Seiderer via buildroot @ 2026-10-25  9:13 UTC (permalink / raw)
  To: Arnout Vandecappelle via buildroot
  Cc: Arnout Vandecappelle, Julien Olivain, Thomas Perale

Hello Arnout,

On Sat, 24 Oct 2026 19:08:30 +0200, Arnout Vandecappelle via buildroot <buildroot@buildroot.org> wrote:

> For `make defconfig`, we use a .defconfig file. This is inherited from
> the kernel, which has a different defconfig for each architecture. The
> kernel defconfig passes ARCH on the command line rather than in Kconfig,
> and defaults are very different for different architectures. In
> Buildroot, we don't have that, instead we have a .defconfig file which
> only has the default architecture. And it's not actually a defconfig,
> it's a very old full .config where only the first part is kept.
> 
> Since we have architecture-independent defaults, and any architecture
> specific things are expressed with "depend on" and an occasional
> "default ... if ...", we don't need this infrastructure at all. We can
> simply make .defconfig an empty file - the BR2_arch choice has a default
> and that's all we need. And we don't even need an empty file, we have
> /dev/null to do that job.
> 
> Use /dev/null for the "defconfig" target if no DEFCONFIG is given.
> Remove the now unnecessary .defconfig.
> 
> Note that this also makes one hunk of
> support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch redundant.
> Let's not do the effort of removing it now, we can remove it if it
> causes issues when updating the kconfig infrastructure.
> 
> Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
> ---
>  .defconfig | 50 --------------------------------------------------
>  Makefile   |  2 +-
>  2 files changed, 1 insertion(+), 51 deletions(-)
>  delete mode 100644 .defconfig
> 
> diff --git a/.defconfig b/.defconfig
> deleted file mode 100644
> index d25c62e104..0000000000
> --- a/.defconfig
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# Mon Feb 18 09:11:56 2008
> -#
> -BR2_HAVE_DOT_CONFIG=y
> -# BR2_alpha is not set
> -# BR2_arm is not set
> -# BR2_armeb is not set
> -# BR2_cris is not set
> -# BR2_ia64 is not set
> -BR2_i386=y
> -# BR2_m68k is not set
> -# BR2_mips is not set
> -# BR2_mipsel is not set
> -# BR2_powerpc is not set
> -# BR2_sh is not set
> -# BR2_sparc is not set
> -# BR2_sparc64 is not set
> -# BR2_x86_64 is not set
> -# BR2_x86_i486 is not set
> -# BR2_x86_i586 is not set
> -BR2_x86_i686=y
> -# BR2_x86_pentiumpro is not set
> -# BR2_x86_pentium_mmx is not set
> -# BR2_x86_pentium_m is not set
> -# BR2_x86_pentium2 is not set
> -# BR2_x86_pentium3 is not set
> -# BR2_x86_pentium4 is not set
> -# BR2_x86_prescott is not set
> -# BR2_x86_nocona is not set
> -# BR2_x86_core2 is not set
> -# BR2_x86_k6 is not set
> -# BR2_x86_k6_2 is not set
> -# BR2_x86_athlon is not set
> -# BR2_x86_athlon_4 is not set
> -# BR2_x86_opteron is not set
> -# BR2_x86_opteron_sse3 is not set
> -# BR2_x86_barcelona is not set
> -# BR2_x86_geode is not set
> -# BR2_x86_c3 is not set
> -# BR2_x86_winchip_c6 is not set
> -# BR2_x86_winchip2 is not set
> -BR2_ARCH="i686"
> -BR2_ENDIAN="LITTLE"
> -BR2_GCC_TARGET_TUNE="i686"
> -BR2_GCC_TARGET_ARCH="i686"
> -
> -#
> -# Target options
> -#
> diff --git a/Makefile b/Makefile
> index 9b62da3e40..aa3826b5b4 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1037,7 +1037,7 @@ oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmake
>  	@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)
>  
>  defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
> -	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
> +	@$(COMMON_CONFIG_ENV) $< --defconfig=$(or $(DEFCONFIG),/dev/null) $(CONFIG_CONFIG_IN)
>  
>  %_defconfig: $(BUILD_DIR)/buildroot-config/conf  outputmakefile
>  	@defconfig=$(or \

The Makefile part looks very familiar:

	Makefile: always use a base config file for defconfig

	https://lore.kernel.org/buildroot/ZjyqwNLypWWS21v5@landeda/

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

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

* Re: [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64
  2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
  2026-10-21 19:37   ` Fiona Klute via buildroot
  2026-10-22  9:36   ` Arnout Vandecappelle via buildroot
@ 2026-10-25 20:57   ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-25 20:57 UTC (permalink / raw)
  To: Julien Olivain; +Cc: buildroot, Mark Corbin

On Tue, Oct 20, 2026 at 10:26:39PM +0200, Julien Olivain via buildroot wrote:
> This commit switches the default target architecture in arch/Config.in
> from i686 to AArch64. AArch64 is now one of the most common
> architecture on embedded Linux systems. The default CPU for this
> architecture remains the Cortex-A53 (Armv8.0).
> 
> While at it, this commit also refreshes the .defconfig to:
> - align to this new default,
> - remove stale options (BR2_alpha, BR2_cris, BR2_ia64)
> - add the missing options
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>

Applied to master, thanks!

(We can separately take the proposal from Arnout that drops the
.defconfig file, which I believe is a good idea)

Best regards,

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2026-10-25 20:57 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20 20:26 [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Julien Olivain via buildroot
2026-10-20 20:26 ` [Buildroot] [PATCH 2/4] Revert "arch: mark a set of target configurations as secondary" Julien Olivain via buildroot
2026-10-20 20:26 ` [Buildroot] [PATCH 3/4] utils/genrandconfig: implement secondary configurations filter Julien Olivain via buildroot
2026-10-20 20:26 ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Julien Olivain via buildroot
2026-10-21 19:37   ` Fiona Klute via buildroot
2026-10-22  9:36   ` Arnout Vandecappelle via buildroot
2026-10-22  9:43     ` Baruch Siach via buildroot
2026-10-23 11:23       ` Julien Olivain via buildroot
2026-10-24 17:08         ` [Buildroot] [RFC] Makefile: do defconfig with /dev/null instead of .defconfig Arnout Vandecappelle via buildroot
2026-10-24 21:27           ` Thomas Petazzoni via buildroot
2026-10-25  9:13           ` Peter Seiderer via buildroot
2026-10-24 17:18       ` [Buildroot] [PATCH 4/4] arch/Config.in: change default target architecture to AArch64 Arnout Vandecappelle via buildroot
2026-10-25 20:57   ` Thomas Petazzoni via buildroot
2026-10-21 19:23 ` [Buildroot] [PATCH 1/4] Revert "Config.in, Makefile: add BR2_HIDE_SECONDARY_TARGET_OPTIONS" Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.