From 53ced1f6d3da6b037d45a70ed0d8a25f5ab15142 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 14 Jun 2016 12:19:58 +0200 Subject: linux: allow the selection of the architecture's default configuration To configure the Linux kernel, we currently provide two options: 1. Passing a defconfig name (for example "multi_v7"), to which we append "_defconfig" to run "make multi_v7_defconfig". 2. Passing a path to a custom configuration file. Unfortunately, those two possibilities do not allow to configure the kernel when you want to use the default configuration built into the kernel for a given architecture. For example, on ARM64, there is a single defconfig simply called "defconfig", which you can load by running "make defconfig". Using the mechanism (1) above doesn't work because we append "_defconfig" automatically. One solution would be to change (1) and require the user to enter the full defconfig named (i.e "multi_v7_defconfig" instead of "multi_v7"), but we would break all existing Buildroot configurations. So instead, we add a third option, which simply tells Buildroot to use the default configuration for the selected architecture. In this case, Buildroot will configure the kernel by running "make defconfig". Cc: Naresh Kamboju Signed-off-by: Thomas Petazzoni Acked-by: "Yann E. MORIN" Signed-off-by: Thomas Petazzoni --- linux/Config.in | 8 ++++++++ linux/linux.mk | 2 ++ 2 files changed, 10 insertions(+) (limited to 'linux') diff --git a/linux/Config.in b/linux/Config.in index ce55271c9..be6d0ccbc 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -142,6 +142,14 @@ choice config BR2_LINUX_KERNEL_USE_DEFCONFIG bool "Using an in-tree defconfig file" +config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG + bool "Use the architecture default configuration" + help + This option will use the default configuration for the + selected architecture. I.e, it is equivalent to running + "make ARCH= defconfig". This is useful on architectures + that have a single defconfig file, such as ARM64. + config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG bool "Using a custom (def)config file" diff --git a/linux/linux.mk b/linux/linux.mk index a751da93b..fb844ef7a 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -206,6 +206,8 @@ LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) LINUX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig +else ifeq ($(BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG),y) +LINUX_KCONFIG_DEFCONFIG = defconfig else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)) endif -- cgit v1.2.3