Browse Source

allow preselection of ABI

Waldemar Brodkorb 10 years ago
parent
commit
da8fa37f0c

+ 6 - 0
mk/build.mk

@@ -358,6 +358,12 @@ endif
 			|sed -e "s#^config \(.*\)#\1=y#" \
 			>> $(ADK_TOPDIR)/.defconfig; \
 	fi
+	@if [ ! -z "$(ADK_TARGET_ABI)" ];then \
+		grep "^config" target/config/Config.in.abi.choice \
+			|grep -i "$(ADK_TARGET_ABI)$$" \
+			|sed -e "s#^config \(.*\)#\1=y#" \
+			>> $(ADK_TOPDIR)/.defconfig; \
+	fi
 	@if [ ! -z "$(ADK_TARGET_ENDIAN)" ];then \
 		grep "^config" target/config/Config.in.endian.choice \
 			|grep -i "$(ADK_TARGET_ENDIAN)" \

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

@@ -34,3 +34,19 @@ config ADK_TARGET_ABI_X32
 	select ADK_x32
 
 endchoice
+
+choice
+prompt "Target ABI"
+depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM
+depends on ADK_LINUX_ARM
+depends on ADK_TARGET_CPU_WITH_FPU || ADK_TARGET_SYSTEM_QEMU_ARM || ADK_TARGET_TOOLCHAIN
+
+config ADK_TARGET_ABI_EABIHF
+	boolean "EABIhf"
+	select ADK_eabihf
+
+config ADK_TARGET_ABI_EABI
+	boolean "EABI"
+	select ADK_eabi
+
+endchoice

+ 0 - 15
target/config/Config.in.arm.choice

@@ -38,18 +38,3 @@ config ADK_TARGET_CUBOX_I1
 
 endchoice
 
-choice ADK_TARGET_ARM_FLOAT
-prompt "Target float type"
-depends on ADK_TARGET_CPU_WITH_FPU || ADK_TARGET_SYSTEM_QEMU_ARM || ADK_TARGET_TOOLCHAIN
-
-config ADK_TARGET_ARM_HARD_FLOAT
-        boolean "Use hard-float for system with FPU"
-        select ADK_hard_float
-	select ADK_eabihf
-
-config ADK_TARGET_ARM_SOFT_FLOAT
-        boolean "Use soft-float for system without FPU"
-        select ADK_soft_float
-	select ADK_eabi
-
-endchoice

+ 10 - 0
target/config/Config.in.arm.default

@@ -28,6 +28,16 @@ config ADK_fpu_neon
 config ADK_fpu_vfp
 	boolean
 
+config ADK_TARGET_ARM_HARD_FLOAT
+	boolean
+        select ADK_hard_float
+	default y if ADK_TARGET_ABI_EABIHF
+
+config ADK_TARGET_ARM_SOFT_FLOAT
+	boolean
+        select ADK_soft_float
+	default y if ADK_TARGET_ABI_EABI
+
 config ADK_TARGET_FLOAT
 	string
 	default "hard" if ADK_hard_float

+ 11 - 0
toolchain/uclibc-ng/Makefile

@@ -29,6 +29,17 @@ else
 	$(SED) 's/.*\(ARCH_LITTLE_ENDIAN\).*/# \1 is not set/' ${WRKBUILD}/.config
 	$(SED) 's/.*\(ARCH_WANTS_LITTLE_ENDIAN\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
+ifeq ($(ADK_LINUX_ARM),y)
+ifeq ($(ADK_TARGET_ABI_EABI),y)
+	$(SED) 's/.*\(UCLIBC_HAS_FPU\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_SOFT_FLOAT\).*/#\1=y/' ${WRKBUILD}/.config
+
+endif
+ifeq ($(ADK_TARGET_ABI_EABIHF),y)
+	$(SED) 's/.*\(UCLIBC_HAS_FPU\).*/\1=y/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_SOFT_FLOAT\).*/# \1 is not set/' ${WRKBUILD}/.config
+endif
+endif
 ifeq ($(ADK_LINUX_64),y)
 	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS64\).*/\1=y/' ${WRKBUILD}/.config
 	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\).*/# \1 is not set/' ${WRKBUILD}/.config