瀏覽代碼

simplify endian config/selection

Mike Frysinger 19 年之前
父節點
當前提交
ea0f380daa

+ 1 - 8
extra/Configs/Config.alpha

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "alpha"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 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

+ 1 - 8
extra/Configs/Config.arm

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "arm"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_ANY_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.bfin

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "bfin"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 
 config ARCH_CFLAGS

+ 1 - 8
extra/Configs/Config.cris

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "cris"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.e1

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "e1"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select HAVE_NO_SHARED
 

+ 1 - 8
extra/Configs/Config.frv

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "frv"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 	select UCLIBC_HAS_FPU
 	select ARCH_HAS_NO_MMU
 

+ 1 - 8
extra/Configs/Config.h8300

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "h8300"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_ANY_ENDIAN
 	select ARCH_HAS_NO_MMU
 
 choice

+ 1 - 8
extra/Configs/Config.hppa

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "hppa"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 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

+ 1 - 8
extra/Configs/Config.i386

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "i386"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_MMU
 
 config ARCH_CFLAGS

+ 1 - 8
extra/Configs/Config.i960

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "i960"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select HAS_NO_THREADS
 

+ 1 - 8
extra/Configs/Config.ia64

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "ia64"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_MMU
 	select HAS_NO_THREADS
 	select ARCH_HAS_NO_LDSO

+ 21 - 9
extra/Configs/Config.in.arch

@@ -3,21 +3,33 @@
 # see extra/config/Kconfig-language.txt
 #
 
+config ARCH_ANY_ENDIAN
+	bool
+config ARCH_BIG_ENDIAN
+	bool
+config ARCH_LITTLE_ENDIAN
+	bool
+if ARCH_ANY_ENDIAN
 choice
 	prompt "Target Processor Endianness"
 	help
-	  This is the endianness you wish to build use.  Choose either Big
+	  This is the endianness you wish to use.  Choose either Big
 	  Endian, or Little Endian.
-
-config ARCH_LITTLE_ENDIAN
-	bool "Little Endian"
-	depends on ARCH_SUPPORTS_LITTLE_ENDIAN
-
-config ARCH_BIG_ENDIAN
+config ARCH_WANTS_BIG_ENDIAN
 	bool "Big Endian"
-	depends on ARCH_SUPPORTS_BIG_ENDIAN
-
+	select ARCH_BIG_ENDIAN
+config ARCH_WANTS_LITTLE_ENDIAN
+	bool "Little Endian"
+	select ARCH_LITTLE_ENDIAN
 endchoice
+endif
+# if the arch only supports one endian, just display the setting
+if !ARCH_ANY_ENDIAN && ARCH_LITTLE_ENDIAN
+comment "Using Little Endian"
+endif
+if !ARCH_ANY_ENDIAN && ARCH_BIG_ENDIAN
+comment "Using Big Endian"
+endif
 
 config ARCH_HAS_NO_MMU
 	bool "Target CPU does not have a memory management unit (MMU)"

+ 1 - 8
extra/Configs/Config.m68k

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "m68k"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.microblaze

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "microblaze"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_NO_MMU
 
 config ARCH_CFLAGS

+ 1 - 8
extra/Configs/Config.mips

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "mips"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_ANY_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 9
extra/Configs/Config.nios

@@ -6,19 +6,11 @@
 config TARGET_ARCH
 	default "nios"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
-	select ARCH_HAS_NO_MMU
 	select ARCH_LITTLE_ENDIAN
+	select ARCH_HAS_NO_MMU
 	select HAVE_NO_PIC
 
 config ARCH_CFLAGS

+ 1 - 9
extra/Configs/Config.nios2

@@ -6,19 +6,11 @@
 config TARGET_ARCH
 	default "nios2"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
-	select ARCH_HAS_NO_MMU
 	select ARCH_LITTLE_ENDIAN
+	select ARCH_HAS_NO_MMU
 	select HAVE_NO_PIC
 
 config ARCH_CFLAGS

+ 1 - 8
extra/Configs/Config.powerpc

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "powerpc"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_MMU
 
 config ARCH_CFLAGS

+ 1 - 8
extra/Configs/Config.sh

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "sh"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_ANY_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.sh64

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "sh64"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_ANY_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.sparc

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "sparc"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default n
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_BIG_ENDIAN
 
 config ARCH_CFLAGS
 	string

+ 1 - 8
extra/Configs/Config.v850

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "v850"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select HAVE_NO_PIC
 

+ 3 - 8
extra/Configs/Config.vax

@@ -6,15 +6,11 @@
 config TARGET_ARCH
 	default "vax"
 
-config HAVE_ELF
-	bool
-	select HAVE_NO_SHARED
-	select ARCH_HAS_NO_LDSO
-	default y
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
+config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
+	select ARCH_HAS_NO_LDSO
 
 config ARCH_CFLAGS
 	string
@@ -28,4 +24,3 @@ config LIBGCC_CFLAGS
 config CROSS
 	string
 	default "vax-linux-uclibc-"
-

+ 1 - 8
extra/Configs/Config.x86_64

@@ -6,17 +6,10 @@
 config TARGET_ARCH
 	default "x86_64"
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-	bool
-	default n
-
-config ARCH_SUPPORTS_LITTLE_ENDIAN
-	bool
-	default y
-
 config FORCE_OPTIONS_FOR_ARCH
 	bool
 	default y
+	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_MMU
 	select UCLIBC_HAS_LFS