summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules.mk1
-rw-r--r--target/arm/sys-available/cubox-i1
-rw-r--r--target/arm/sys-available/qemu-arm1
-rw-r--r--target/arm/sys-available/qemu-armhf1
-rw-r--r--target/arm/sys-available/raspberry-pi1
-rw-r--r--target/arm/sys-available/toolchain-arm1
-rw-r--r--target/arm/sys-available/toolchain-armhf1
-rw-r--r--target/config/Config.in11
-rw-r--r--toolchain/gcc/Makefile28
9 files changed, 30 insertions, 16 deletions
diff --git a/rules.mk b/rules.mk
index 81c613c83..f822642d1 100644
--- a/rules.mk
+++ b/rules.mk
@@ -32,6 +32,7 @@ ADK_TARGET_LIBC:= $(strip $(subst ",, $(ADK_TARGET_LIBC)))
ADK_TARGET_LIBC_PATH:= $(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
ADK_TARGET_ENDIAN:= $(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
ADK_TARGET_FLOAT:= $(strip $(subst ",, $(ADK_TARGET_FLOAT)))
+ADK_TARGET_FPU:= $(strip $(subst ",, $(ADK_TARGET_FPU)))
ADK_TARGET_ARM_MODE:= $(strip $(subst ",, $(ADK_TARGET_ARM_MODE)))
ADK_TARGET_CPU_ARCH:= $(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
ADK_TARGET_CFLAGS:= $(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
diff --git a/target/arm/sys-available/cubox-i b/target/arm/sys-available/cubox-i
index 9a63c8350..97a9a84b4 100644
--- a/target/arm/sys-available/cubox-i
+++ b/target/arm/sys-available/cubox-i
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_CUBOX_I
select ADK_little
select ADK_hard_float
select ADK_eabihf
+ select ADK_fpu_neon
select ADK_cubox_i
select ADK_CPU_CORTEX_A9
select ADK_TARGET_WITH_MMC
diff --git a/target/arm/sys-available/qemu-arm b/target/arm/sys-available/qemu-arm
index 1fa057c4b..aeaa41d44 100644
--- a/target/arm/sys-available/qemu-arm
+++ b/target/arm/sys-available/qemu-arm
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_QEMU_ARM
select ADK_qemu_arm
select ADK_little
select ADK_soft_float
+ select ADK_fpu_vfp
select ADK_eabi
select ADK_HARDWARE_QEMU
select ADK_TARGET_KERNEL_ZIMAGE
diff --git a/target/arm/sys-available/qemu-armhf b/target/arm/sys-available/qemu-armhf
index 85cc9c00f..dab039931 100644
--- a/target/arm/sys-available/qemu-armhf
+++ b/target/arm/sys-available/qemu-armhf
@@ -5,6 +5,7 @@ config ADK_TARGET_SYSTEM_QEMU_ARMHF
select ADK_little
select ADK_hard_float
select ADK_eabihf
+ select ADK_fpu_vfp
select ADK_HARDWARE_QEMU
select ADK_TARGET_KERNEL_ZIMAGE
help
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index 518b7b2a3..e91e0e4a1 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
select ADK_little
select ADK_hard_float
select ADK_eabihf
+ select ADK_fpu_vfp
select ADK_raspberry_pi
select ADK_CPU_ARM1176JZF_S
select ADK_TARGET_WITH_MMC
diff --git a/target/arm/sys-available/toolchain-arm b/target/arm/sys-available/toolchain-arm
index 23febc50e..3ad081933 100644
--- a/target/arm/sys-available/toolchain-arm
+++ b/target/arm/sys-available/toolchain-arm
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
select ADK_toolchain_arm
select ADK_little
select ADK_soft_float
+ select ADK_fpu_vfp
select ADK_eabi
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
diff --git a/target/arm/sys-available/toolchain-armhf b/target/arm/sys-available/toolchain-armhf
index bf671481c..8a2db49a8 100644
--- a/target/arm/sys-available/toolchain-armhf
+++ b/target/arm/sys-available/toolchain-armhf
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMHF
select ADK_little
select ADK_hard_float
select ADK_eabihf
+ select ADK_fpu_vfp
select ADK_toolchain_armhf
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
diff --git a/target/config/Config.in b/target/config/Config.in
index 38004d7e3..05f495449 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -37,6 +37,12 @@ config ADK_soft_float
config ADK_hard_float
boolean
+config ADK_fpu_neon
+ boolean
+
+config ADK_fpu_vfp
+ boolean
+
config ADK_mode_arm
boolean
@@ -48,6 +54,11 @@ config ADK_TARGET_FLOAT
default "hard" if ADK_hard_float
default "soft" if ADK_soft_float
+config ADK_TARGET_FPU
+ string
+ default "vfp" if ADK_fpu_vfp
+ default "neon" if ADK_fpu_neon
+
config ADK_TARGET_ARM_MODE
depends on ADK_LINUX_ARM
string
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 98e150f7a..6f70bfd12 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -80,6 +80,9 @@ endif
ifeq ($(ARCH),arm)
GCC_CONFOPTS+= --with-float=$(ADK_TARGET_FLOAT)
GCC_CONFOPTS+= --with-mode=$(ADK_TARGET_ARM_MODE)
+ifneq ($(ADK_TARGET_FPU),)
+GCC_CONFOPTS+= --with-fpu=$(ADK_TARGET_FPU)
+endif
endif
ifeq ($(ADK_CPU_ARM926EJ_S),y)
@@ -87,11 +90,11 @@ GCC_CONFOPTS+= --with-arch=armv5te --with-tune=arm1176jzf-s
endif
ifeq ($(ADK_CPU_ARM1176JZF_S),y)
-GCC_CONFOPTS+= --with-arch=armv6 --with-tune=arm1176jzf-s --with-fpu=vfp
+GCC_CONFOPTS+= --with-arch=armv6 --with-tune=arm1176jzf-s
endif
ifeq ($(ADK_CPU_CORTEX_A9),y)
-GCC_CONFOPTS+= --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon
+GCC_CONFOPTS+= --with-arch=armv7-a --with-tune=cortex-a9
endif
ifeq ($(ADK_CPU_SPARC_V9),y)
@@ -120,11 +123,13 @@ GCC_BUILD_DIR_FINAL:= $(WRKBUILD)-final
$(GCC_BUILD_DIR_MINIMAL)/.configured:
mkdir -p $(GCC_BUILD_DIR_MINIMAL)
# these symlinks are very important, do not remove
- rm -rf $(TOOLCHAIN_DIR)/$(GNU_TARGET_NAME)/sys-include
- ln -sf ${STAGING_TARGET_DIR}/usr/include \
- $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
+ rm -rf $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
+ mkdir -p $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)
+ (cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME); \
+ ln -s ../$(STAGING_HOST2TARGET)/usr/include sys-include)
rm -rf ${TOOLCHAIN_DIR}/usr/$(GNU_TARGET_NAME)/lib
- ln -sf ${STAGING_TARGET_DIR}/lib $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/lib
+ (cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME); \
+ ln -s ../$(STAGING_HOST2TARGET)/lib lib)
ifeq ($(ADK_LINUX_SH),y)
(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
endif
@@ -202,16 +207,7 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
done;
(cd $(TOOLCHAIN_DIR)/usr/bin && \
ln -sf $(GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc-${PKG_VERSION})
- @-test -d $(STAGING_TARGET_DIR)/lib32 && \
- cd $(STAGING_TARGET_DIR)/lib32 && \
- ln -sf libstdc++.so.6.0.18 libstdc++.so && \
- ln -sf libstdc++.so.6.0.18 libstdc++.so.6
- @-test -d $(STAGING_TARGET_DIR)/libx32 && \
- cd $(STAGING_TARGET_DIR)/libx32 && \
- ln -sf libstdc++.so.6.0.18 libstdc++.so && \
- ln -sf libstdc++.so.6.0.18 libstdc++.so.6
- @-test -d $(STAGING_TARGET_DIR)/lib64 && \
- cd $(STAGING_TARGET_DIR)/lib64 && \
+ cd $(STAGING_TARGET_DIR)/lib && \
ln -sf libstdc++.so.6.0.18 libstdc++.so && \
ln -sf libstdc++.so.6.0.18 libstdc++.so.6
# cleanup unneeded docs