Ah, figured out the -mfdpic thing, [PATCH] included.

Khem Raj raj.khem at gmail.com
Sat Feb 12 06:01:41 UTC 2011


On (10/02/11 13:42), Rob Landley wrote:
> 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.

hmmm yeah seems notion of using mmu and having mmu could be combined. 
The case where chip has mmu but one still would like to not use it 
can be deemed as

TARGET_HAS_MMU is not set

I dont see any particular use of knowing that I have mmu when I dont
want to use it

and when I want to use it then I better know what I am enabling.

> 
> 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
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc



More information about the uClibc mailing list