summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/build.mk6
-rw-r--r--target/config/Config.in.abi.choice16
-rw-r--r--target/config/Config.in.arm.choice15
-rw-r--r--target/config/Config.in.arm.default10
-rw-r--r--toolchain/uclibc-ng/Makefile11
5 files changed, 43 insertions, 15 deletions
diff --git a/mk/build.mk b/mk/build.mk
index a47404691..716e550f2 100644
--- a/mk/build.mk
+++ b/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)" \
diff --git a/target/config/Config.in.abi.choice b/target/config/Config.in.abi.choice
index 53f6ed1c8..74e599ead 100644
--- a/target/config/Config.in.abi.choice
+++ b/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
diff --git a/target/config/Config.in.arm.choice b/target/config/Config.in.arm.choice
index 5c834c0e9..6cdfdba2a 100644
--- a/target/config/Config.in.arm.choice
+++ b/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
diff --git a/target/config/Config.in.arm.default b/target/config/Config.in.arm.default
index 59513ff8c..50a05b674 100644
--- a/target/config/Config.in.arm.default
+++ b/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
diff --git a/toolchain/uclibc-ng/Makefile b/toolchain/uclibc-ng/Makefile
index 651ad310b..58ca42389 100644
--- a/toolchain/uclibc-ng/Makefile
+++ b/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