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
