I mentioned that my build was dying due to trying to use -mfdpic which
is a target-specific option for the FRV processor:

  http://lists.uclibc.org/pipermail/uclibc/2011-January/044701.html
  https://bugs.busybox.net/show_bug.cgi?id=3193

The problem is that uClibc has an utterly useless user-visible
"TARGET_HAS_MMU" as well as "TARGET_USE_MMU", and I took the first out
of miniconfig because I'd complained about the redundant option during
the dev cycle and thought it was gone.

Here's a patch to remove the redundant option.  The only decision the
end user has to make is "Do I want MMU or NOMMU?", and TARGET_USE_MMU is
the thing that selects that.  (There's even code in the test suite
making sure nothing in the actual build ever uses ARCH_HAS_MMU, it's
JUST a dependency guard on the only symbol that actually matters.)

Architectures that have no MMU still set ARCH_HAS_NO_MMU, and that's
used directly as the visibility guard for TARGET_USE_MMU which is the
only user visible setting, and which defaults to y just like it always
did.  (The previous code that selected TARGET_HAS_MMU was selecting a
symbol that defaulted to Y, for no apparent reason.  There was a whole
lotta NOP going on, and I've removed it.)

The fact that when you select a nommu system, it defaults to creating a
binary format that's only available on the FRV architecture with no hint
that it's a target-specific format, is a separate bug introduced without
explanation in commit 14db067a8bdcdc7a25.  I'm leaving that for now, in
hopes somebody either fixes it or writes a help option explaining what
they were thinking.

Rob
diff --git a/extra/Configs/Config.alpha b/extra/Configs/Config.alpha
index 144924a..9aab976 100644
--- a/extra/Configs/Config.alpha
+++ b/extra/Configs/Config.alpha
@@ -11,6 +11,5 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_LITTLE_ENDIAN
-	select ARCH_HAS_MMU
 	select ARCH_HAS_NO_LDSO
 	select UCLIBC_HAS_LFS
diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
index b060ace..5c919b4 100644
--- a/extra/Configs/Config.arm
+++ b/extra/Configs/Config.arm
@@ -62,11 +62,9 @@ config CONFIG_GENERIC_ARM
 
 config CONFIG_ARM610
 	bool "Arm 610"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM710
 	bool "Arm 710"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM7TDMI
 	bool "Arm 7TDMI"
@@ -74,35 +72,27 @@ config CONFIG_ARM7TDMI
 
 config CONFIG_ARM720T
 	bool "Arm 720T"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM920T
 	bool "Arm 920T"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM922T
 	bool "Arm 922T"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM926T
 	bool "Arm 926T"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM10T
 	bool "Arm 10T"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM1136JF_S
 	bool "Arm 1136JF-S"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM1176JZ_S
 	bool "Arm 1176JZ-S"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM1176JZF_S
 	bool "Arm 1176JZF-S"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM_CORTEX_M3
 	bool "Arm Cortex-M3"
@@ -116,18 +106,14 @@ config CONFIG_ARM_CORTEX_M1
 
 config CONFIG_ARM_SA110
 	bool "Intel StrongArm SA-110"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM_SA1100
 	bool "Intel StrongArm SA-1100"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM_XSCALE
 	bool "Intel Xscale"
-	select ARCH_HAS_MMU
 
 config CONFIG_ARM_IWMMXT
 	bool "Intel Xscale With WMMX PXA27x"
-	select ARCH_HAS_MMU
 
 endchoice
diff --git a/extra/Configs/Config.avr32 b/extra/Configs/Config.avr32
index cbadb4c..a5eb157 100644
--- a/extra/Configs/Config.avr32
+++ b/extra/Configs/Config.avr32
@@ -19,7 +19,6 @@ choice
 
 config CONFIG_AVR32_AP7
 	bool "AVR32 AP7"
-	select ARCH_HAS_MMU
 
 endchoice
 
diff --git a/extra/Configs/Config.cris b/extra/Configs/Config.cris
index 52ca0c3..db9293c 100644
--- a/extra/Configs/Config.cris
+++ b/extra/Configs/Config.cris
@@ -24,11 +24,9 @@ choice
 		- CRISv32  Support for Axis' CRISv32 architecture.
 
 config CONFIG_CRIS
-	select ARCH_HAS_MMU
 	bool "CRIS"
 
 config CONFIG_CRISV32
-	select ARCH_HAS_MMU
 	bool "CRISv32"
 
 endchoice
diff --git a/extra/Configs/Config.hppa b/extra/Configs/Config.hppa
index 1323de2..b8699bf 100644
--- a/extra/Configs/Config.hppa
+++ b/extra/Configs/Config.hppa
@@ -11,7 +11,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_BIG_ENDIAN
-	select ARCH_HAS_MMU
 	select HAS_NO_THREADS
 	select ARCH_HAS_NO_LDSO
 	select HAVE_NO_SSP
diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386
index 288aa5e..f23646c 100644
--- a/extra/Configs/Config.i386
+++ b/extra/Configs/Config.i386
@@ -11,7 +11,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_LITTLE_ENDIAN
-	select ARCH_HAS_MMU
 
 choice
 	prompt "Target x86 Processor Family"
diff --git a/extra/Configs/Config.ia64 b/extra/Configs/Config.ia64
index ae88be7..c7a1f63 100644
--- a/extra/Configs/Config.ia64
+++ b/extra/Configs/Config.ia64
@@ -11,5 +11,4 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_LITTLE_ENDIAN
-	select ARCH_HAS_MMU
 	select ARCH_HAS_NO_LDSO
diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
index 8a02cb1..4679517 100644
--- a/extra/Configs/Config.in.arch
+++ b/extra/Configs/Config.in.arch
@@ -93,7 +93,7 @@ if ARCH_HAS_NO_MMU
 comment "Target CPU lacks a memory management unit (MMU)"
 endif
 
-config ARCH_HAS_MMU
+config ARCH_USE_MMU
 	bool "Target CPU has a memory management unit (MMU)"
 	depends on !ARCH_HAS_NO_MMU
 	default y
@@ -102,13 +102,6 @@ config ARCH_HAS_MMU
 	  then answer N here.  Normally, Linux runs on systems with an MMU.  
 	  If you are building a uClinux system, answer N.
 
-	  Most people will answer Y.
-
-config ARCH_USE_MMU
-	bool "Do you want to utilize the MMU?"
-	depends on ARCH_HAS_MMU
-	default y
-	help
 	  If your target CPU has a MMU, and you wish to actually utilize it,
 	  then answer Y here.  Normal Linux requires an MMU.
 
diff --git a/extra/Configs/Config.powerpc b/extra/Configs/Config.powerpc
index 84c4423..6b09f47 100644
--- a/extra/Configs/Config.powerpc
+++ b/extra/Configs/Config.powerpc
@@ -11,7 +11,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_BIG_ENDIAN
-	select ARCH_HAS_MMU
 
 choice
 	prompt "Target Processor Type"
diff --git a/extra/Configs/Config.sh b/extra/Configs/Config.sh
index 10e9d8b..ce86ef3 100644
--- a/extra/Configs/Config.sh
+++ b/extra/Configs/Config.sh
@@ -37,7 +37,6 @@ config CONFIG_SH2
 	bool "SH2"
 
 config CONFIG_SH3
-	select ARCH_HAS_MMU
 	bool "SH3"
 
 config CONFIG_SH4
diff --git a/extra/Configs/Config.sh64 b/extra/Configs/Config.sh64
index 02535b9..a8c22bd 100644
--- a/extra/Configs/Config.sh64
+++ b/extra/Configs/Config.sh64
@@ -25,7 +25,6 @@ choice
 	  - "SH5" SuperH SH-5 101, 103
 
 config CONFIG_SH5
-	select ARCH_HAS_MMU
 	select UCLIBC_HAS_LFS
 	bool "SH5"
 
diff --git a/extra/Configs/Config.x86_64 b/extra/Configs/Config.x86_64
index 1b28088..80c9e08 100644
--- a/extra/Configs/Config.x86_64
+++ b/extra/Configs/Config.x86_64
@@ -11,4 +11,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
 	select ARCH_LITTLE_ENDIAN
-	select ARCH_HAS_MMU
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to