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

Nitin Garg nitingarg98 at gmail.com
Sat Feb 12 16:09:11 UTC 2011


Cortex-M3 (No MMU) builds are broken too due to -mfdpic compile option.

Regards,
Nitin

On Sat, Feb 12, 2011 at 12:01 AM, Khem Raj <raj.khem at gmail.com> wrote:
> 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
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc
>


More information about the uClibc mailing list