Blob Blame Raw
From patchwork Sun Jul 22 10:01:43 2012
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: arm-allnoconfig error: '__LINUX_ARM_ARCH__' undeclared
Date: Sun, 22 Jul 2012 10:01:43 -0000
From: Arnd Bergmann <arnd@arndb.de>
X-Patchwork-Id: 1224201
Message-Id: <201207221001.43528.arnd@arndb.de>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Russell King <linux@arm.linux.org.uk>,
 LKML <linux-kernel@vger.kernel.org>, linux-arm-kernel@lists.infradead.org

On Sunday 22 July 2012, Fengguang Wu wrote:
> Kernel build failed on arm-allnoconfig:
> 
> include/linux/math64.h:55:15: error: '__LINUX_ARM_ARCH__' undeclared (first use in this function)
> arch/arm/include/asm/glue-cache.h:129:2: error: #error Unknown cache maintenance model
> arch/arm/include/asm/glue-df.h:99:2: error: #error Unknown data abort handler type
> arch/arm/include/asm/glue-pf.h:54:2: error: #error Unknown prefetch abort handler type
> 
> Do you think this allnoconfig test meaningful at all?

The allno/mod/yesconfig tests on ARM are somewhat limited in their
usefulness at the moment because they always pick the same platform
type (versatile) and don't really cover the cases that most people
are interested in.

The particular problem with allnoconfig is that the logic to determine
the architecture level depends on at least one platform being selected,
and there are also problems with nommu kernels that tend to not work
if certain other options are not set correctly. 

We can make the nommu case go away if we make hide the option for
non-expert configurations including allnoconfig. I suggested adding
some logic to all the subarch Kconfig files that forces at least
one of the boards to be enabled like the patch below, but a number
of people didn't like it.

For reference, here is what I would use in order to get 'make
allnoconfig' to work on ARM. My impression is at the moment that
we should make a more serious attempt at fixing all the possible
configurations when we get to 'multiplatform' configurations,
because that will be more interesting than doing it just for
the versatile platform.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>


diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a306d6d..e43e743 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -236,7 +236,7 @@ source "kernel/Kconfig.freezer"
 menu "System Type"
 
 config MMU
-	bool "MMU-based Paged Memory Management Support"
+	bool "MMU-based Paged Memory Management Support" if EXPERT
 	default y
 	help
 	  Select if you want MMU-based virtualised addressing space
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index c1f38f6..455f20a 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -25,4 +25,13 @@ config MACH_VERSATILE_DT
 	  Include support for the ARM(R) Versatile/PB platform,
 	  using the device tree for discovery
 
+config MACH_VERSATILE_AUTO
+	def_bool y
+	depends on !ARCH_VERSATILE_PB
+	depends on !MACH_VERSATILE_AB
+	select MACH_VERSATILE_DT
+	help
+	  We autoselect MACH_VERSATILE_DT if both PB and AB are
+	  disabled, to ensure that at least one platform is enabled.
+
 endmenu