summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUGS1
-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
-rw-r--r--toolchain/glibc/Makefile2
-rw-r--r--toolchain/musl/Makefile5
-rw-r--r--toolchain/uClibc/Makefile8
13 files changed, 37 insertions, 25 deletions
diff --git a/BUGS b/BUGS
index 5bd4fc77c..70759ad05 100644
--- a/BUGS
+++ b/BUGS
@@ -1,4 +1,3 @@
-- qemu-i386: uCLibc fails for non-debug builds
- qemu-sparc: startup kernel with gcc 4.8.2 broken
- qemu-sh4: usb keyboard is broken
- qemu-arm: thumb mode with glibc does not boot
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
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index b117aadb0..44f73c1ff 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -64,13 +64,11 @@ $(WRKBUILD)/.installed:
${GLIBC_ENV} $(MAKE) -C $(GLIBC_BUILD_DIR_FINAL) install_root=$(STAGING_TARGET_DIR) install
mkdir -p ${STAGING_TARGET_DIR}/etc
${INSTALL_DATA} ${WRKBUILD}/posix/gai.conf ${STAGING_TARGET_DIR}/etc
- ${INSTALL_DATA} ${WRKBUILD}/nscd/nscd.conf ${STAGING_TARGET_DIR}/etc
${INSTALL_DATA} ${WRKBUILD}/nss/nsswitch.conf ${STAGING_TARGET_DIR}/etc
touch $@
$(WRKBUILD)/.fixup:
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
- -find $(STAGING_TARGET_DIR) -type f -name \*_pic\* -delete
rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n
rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv
ifeq ($(ADK_TOOLCHAIN),y)
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index aa5e8845c..f13a2613d 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -55,8 +55,9 @@ $(WRKBUILD)/.fixup:
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
ifeq ($(ADK_TOOLCHAIN),y)
# strip target libs and host tools for toolchain builds
- PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
- debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+ PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh \
+ $(STAGING_TARGET_DIR) $(TOOLCHAIN_DIR)/usr/lib/gcc/$(GNU_TARGET_NAME)
+ debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr/bin
endif
touch $@
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index 18b94916f..c691a8b2b 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -104,9 +104,8 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
touch $@
$(WRKBUILD)/.fixup:
-ifneq ($(ADK_DEBUG),)
+ # DOSTRIP kills x86 target (ld.so can not map libc.so.0), always use DODEBUG
$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
-endif
$(MAKE) -C $(WRKBUILD) \
PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
@@ -118,8 +117,9 @@ endif
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
ifeq ($(ADK_TOOLCHAIN),y)
# strip target libs and host tools for toolchain builds
- PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR)
- debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR)
+ PATH="$(TARGET_PATH)" debug='0' prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh \
+ $(STAGING_TARGET_DIR) $(TOOLCHAIN_DIR)/usr/lib/gcc/$(GNU_TARGET_NAME)
+ debug='0' prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(TOOLCHAIN_DIR)/usr/bin
endif
touch $@