diff options
-rw-r--r-- | mk/build.mk | 6 | ||||
-rw-r--r-- | target/config/Config.in.abi.choice | 16 | ||||
-rw-r--r-- | target/config/Config.in.arm.choice | 15 | ||||
-rw-r--r-- | target/config/Config.in.arm.default | 10 | ||||
-rw-r--r-- | toolchain/uclibc-ng/Makefile | 11 |
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 |