Browse Source

rework float support for ARM

Waldemar Brodkorb 9 years ago
parent
commit
5a0886ba5e

+ 1 - 1
Config.in

@@ -25,7 +25,6 @@ source "target/config/Config.in.kernel"
 source "target/config/Config.in.arch"
 source "target/config/Config.in.system"
 source "target/config/Config.in.endian"
-source "target/config/Config.in.float"
 source "target/config/Config.in.arm"
 source "target/config/Config.in.cris"
 source "target/config/Config.in.mips"
@@ -35,6 +34,7 @@ source "target/config/Config.in.qemuopts"
 source "target/config/Config.in.kernelversion"
 source "target/config/Config.in.libc"
 source "target/config/Config.in.abi"
+source "target/config/Config.in.float"
 source "target/config/Config.in.binfmt"
 source "target/config/Config.in.target"
 

+ 0 - 1
target/arm/systems/raspberry-pi

@@ -2,7 +2,6 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
 	bool "Raspberry PI"
 	select ADK_arm
 	select ADK_little
-	select ADK_eabihf
 	select ADK_fpu_vfp
 	select ADK_raspberry_pi
 	select ADK_CPU_ARM1176JZF_S

+ 0 - 1
target/arm/systems/raspberry-pi2

@@ -2,7 +2,6 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI2
 	bool "Raspberry PI 2"
 	select ADK_arm
 	select ADK_little
-	select ADK_eabihf
 	select ADK_fpu_vfp
 	select ADK_raspberry_pi2
 	select ADK_CPU_CORTEX_A7

+ 0 - 1
target/arm/systems/sharp-zaurus

@@ -3,7 +3,6 @@ config ADK_TARGET_SYSTEM_SHARP_ZAURUS
 	select ADK_arm
 	select ADK_sharp_zaurus
 	select ADK_little
-	select ADK_eabi
 	select ADK_CPU_XSCALE
 	select ADK_TARGET_CPU_WITH_IWMMXT
 	select ADK_TARGET_WITH_VGA

+ 0 - 1
target/arm/systems/solidrun-imx6

@@ -2,7 +2,6 @@ config ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	bool "Solidrun IMX6 Embedded Systems"
 	select ADK_arm
 	select ADK_little
-	select ADK_eabihf
 	select ADK_fpu_neon
 	select ADK_solidrun_imx6
 	select ADK_CPU_CORTEX_A9

+ 0 - 16
target/config/Config.in.abi.choice

@@ -32,19 +32,3 @@ config ADK_TARGET_ABI_X32
 	select ADK_x32
 
 endchoice
-
-choice
-prompt "ABI"
-depends on ADK_TARGET_ARCH_ARM
-depends on ADK_TARGET_CPU_WITH_FPU || ADK_TARGET_SYSTEM_QEMU_ARM || ADK_TARGET_TOOLCHAIN
-
-config ADK_TARGET_ABI_EABIHF
-	bool "EABIhf"
-	select ADK_eabihf
-	depends on ADK_CPU_CORTEX_A7 || ADK_CPU_CORTEX_A9 || ADK_CPU_ARM1176JZF_S
-
-config ADK_TARGET_ABI_EABI
-	bool "EABI"
-	select ADK_eabi
-
-endchoice

+ 8 - 14
target/config/Config.in.abi.default

@@ -2,28 +2,22 @@
 # material, please see the LICENCE file in the top-level directory.
 
 config ADK_o32
-	boolean
+	bool
 
 config ADK_n32
-	boolean
+	bool
 
 config ADK_n64
-	boolean
+	bool
 
 config ADK_32
-	boolean
+	bool
 
 config ADK_64
-	boolean
+	bool
 
 config ADK_x32
-	boolean
-
-config ADK_eabi
-	boolean
-
-config ADK_eabihf
-	boolean
+	bool
 
 config ADK_TARGET_ABI
 	string
@@ -31,8 +25,8 @@ config ADK_TARGET_ABI
 	default "n64" if ADK_n64
 	default "32" if ADK_32
 	default "x32" if ADK_x32
-	default "eabi" if ADK_eabi
-	default "eabihf" if ADK_eabihf
+	default "eabi" if ADK_arm && ADK_soft_float
+	default "eabihf" if ADK_arm && ADK_hard_float
 
 config ADK_TARGET_MIPS_ABI
 	depends on ADK_TARGET_ARCH_MIPS64

+ 2 - 1
target/config/Config.in.float.choice

@@ -5,7 +5,8 @@ choice ADK_TARGET_FLOAT
 prompt "Float configuration"
 depends on ADK_TARGET_ARCH_ARM || \
 	   ADK_TARGET_ARCH_MIPS || \
-	   ADK_TARGET_ARCH_PPC
+	   ADK_TARGET_ARCH_PPC && \
+	   ADK_TARGET_CPU_WITH_FPU
 
 config ADK_TARGET_HARD_FLOAT
 	bool "hard-float"

+ 4 - 4
target/config/Config.in.libc.default

@@ -50,16 +50,16 @@ config ADK_TARGET_WITH_NPTL
 
 config ADK_TARGET_SUFFIX
 	string
-	default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_eabihf
-	default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_eabi
+	default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_arm && ADK_hard_float
+	default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_arm && ADK_soft_float
 	default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64
 	default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32
 	default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32
 	default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_32 && ADK_LINUX_64
 	default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_x32 && ADK_LINUX_64
 	default "gnu" if ADK_TARGET_LIB_GLIBC
-	default "uclibceabihf" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_eabihf
-	default "uclibceabi" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_eabi
+	default "uclibceabihf" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_arm && ADK_hard_float
+	default "uclibceabi" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_arm && ADK_soft_float
 	default "uclibcabi64" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_n64
 	default "uclibcabin32" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_n32
 	default "uclibcabi32" if (ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG) && ADK_o32

+ 6 - 17
target/config/Config.in.qemu

@@ -53,39 +53,28 @@ prompt "Qemu ARM Emulation"
 depends on ADK_TARGET_SYSTEM_QEMU_ARM
 
 config ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
-	bool "ARM Ltd. Versatile Express for Cortex-A9"
+	bool "ARM Ltd. Versatile Express with Cortex-A9"
 	select ADK_CPU_CORTEX_A9
+	select ADK_TARGET_CPU_WITH_FPU
 
 config ADK_TARGET_QEMU_ARM_MODEL_STELLARIS_M3
-	bool "Stellaris LM3S6965EVB"
-	select ADK_soft_float
-	select ADK_eabi
+	bool "Stellaris LM3S6965EVB with Cortex-M3"
 	select ADK_CPU_CORTEX_M3
-	select ADK_TARGET_ARM_SOFT_FLOAT
 	select ADK_TARGET_ARCH_ARM_WITH_THUMB
 	select ADK_TARGET_UCLINUX
 
 config ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
-	bool "ARM Ltd. Versatile/PB"
-	select ADK_soft_float
-	select ADK_eabi
+	bool "ARM Ltd. Versatile/PB with ARM926EJ-S"
 	select ADK_CPU_ARM926EJ_S
-	select ADK_TARGET_ARM_SOFT_FLOAT
 
 config ADK_TARGET_QEMU_ARM_MODEL_TERRIER
-	bool "Xscale PXA270 Terrier PDA"
-	select ADK_soft_float
-	select ADK_eabi
+	bool "Xscale PXA270 Terrier PDA with XSCALE"
 	select ADK_CPU_XSCALE
 	select ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
-	select ADK_TARGET_ARM_SOFT_FLOAT
 
 config ADK_TARGET_QEMU_ARM_MODEL_SPITZ
-	bool "Xscale PXA270 Spitz PDA"
-	select ADK_soft_float
-	select ADK_eabi
+	bool "Xscale PXA270 Spitz PDA with XSCALE"
 	select ADK_CPU_XSCALE
 	select ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
-	select ADK_TARGET_ARM_SOFT_FLOAT
 
 endchoice