summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-04-23 02:27:06 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-04-23 02:27:06 +0000
commit239679bf37b4d5532beaf40a3207de9c238d0232 (patch)
tree5f56c128113fe6720caad1cd93a79fe6321d70d6
parentf8e7d6864a9a99101b69cfcf1d3ef623616ac0f3 (diff)
downloadnuttx-239679bf37b4d5532beaf40a3207de9c238d0232.tar.gz
nuttx-239679bf37b4d5532beaf40a3207de9c238d0232.tar.bz2
nuttx-239679bf37b4d5532beaf40a3207de9c238d0232.zip
Add logic to more clearly specific ARM architecture
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1722 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--misc/buildroot/ChangeLog5
-rw-r--r--misc/buildroot/Config.in40
-rw-r--r--misc/buildroot/configs/README.txt7
-rw-r--r--misc/buildroot/configs/arm920t-defconfig-4.2.4 (renamed from misc/buildroot/configs/arm-defconfig-4.2.4)10
-rw-r--r--misc/buildroot/configs/arm926t-defconfig-4.2.4109
-rw-r--r--misc/buildroot/toolchain/gcc/Makefile.in14
-rw-r--r--misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk2
-rw-r--r--misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk2
8 files changed, 181 insertions, 8 deletions
diff --git a/misc/buildroot/ChangeLog b/misc/buildroot/ChangeLog
index 41a76e7a2..a79788b61 100644
--- a/misc/buildroot/ChangeLog
+++ b/misc/buildroot/ChangeLog
@@ -28,3 +28,8 @@ buildroot-0.1.4 2009-04-19 <spudmonkey@racsa.co.cr>
* Removed logic to build the target GCC. That is never used.
buildroot-0.1.5 2009-xx-xx <spudmonkey@racsa.co.cr>
+
+ * Replaced config/arm-defconfig-4.2.4 with config/arm920t-defconfig-4.2.4
+ and config/arm926t-defconfig-4.2.4 because of differences in the
+ way that soft floating point is handled between these two
+ architectures.
diff --git a/misc/buildroot/Config.in b/misc/buildroot/Config.in
index f9cb2e6fe..153b7a8ac 100644
--- a/misc/buildroot/Config.in
+++ b/misc/buildroot/Config.in
@@ -75,6 +75,8 @@ config BR2_arm710
bool "arm710"
config BR2_arm720t
bool "arm720t"
+config BR2_arm740t
+ bool "arm740t"
config BR2_arm920t
bool "arm920t"
config BR2_arm922t
@@ -98,6 +100,7 @@ config BR2_ARM_TYPE
default ARM610 if BR2_arm610
default ARM710 if BR2_arm710
default ARM720T if BR2_arm720t
+ default ARM740T if BR2_arm740t
default ARM920T if BR2_arm920t
default ARM922T if BR2_arm922t
default ARM926T if BR2_arm926t
@@ -207,7 +210,42 @@ config BR2_ARCH
default "sh64" if BR2_sh64
default "h8300" if BR2_h8300
default "sparc" if BR2_sparc
- default "x86_64" if BR2_x86_64
+
+config BR2_GCC_TARGET_TUNE
+ string
+ default i386 if BR2_x86_i386
+ default i486 if BR2_x86_i486
+ default i586 if BR2_x86_i586
+ default i686 if BR2_x86_i686
+ default arm610 if BR2_arm610
+ default arm7tdmi if BR2_arm7tdmi || BR2_arm720t || BR2_arm740t
+ default arm920t if BR2_arm920t
+ default arm922t if BR2_arm922t
+ default arm9tdmi if BR2_arm926t
+ default arm1136jf-s if BR2_arm1136jf_s
+ default strongarm110 if BR2_sa110
+ default strongarm1100 if BR2_sa1100
+ default xscale if BR2_xscale
+ default iwmmxt if BR2_iwmmxt
+
+config BR2_GCC_TARGET_ARCH
+ string
+ default i386 if BR2_x86_i386
+ default i486 if BR2_x86_i486
+ default i586 if BR2_x86_i586
+ default i686 if BR2_x86_i686
+ default armv3 if BR2_arm610 || BR2_arm710
+ default armv4 if BR2_sa110 || BR2_sa1100
+ default armv4t if BR2_arm7tdmi
+ default armv4t if BR2_arm720t || BR2_arm920t || BR2_arm922t
+ default armv5te if BR2_arm926t || BR2_arm10t || BR2_xscale
+ default armv6j if BR2_arm1136jf_s
+ default iwmmxt if BR2_iwmmxt
+
+config BR2_GCC_TARGET_ABI
+ string
+ default apcs-gnu if BR2_ARM_OABI
+ default aapcs-linux if BR2_ARM_EABI
config BR2_ENDIAN
string
diff --git a/misc/buildroot/configs/README.txt b/misc/buildroot/configs/README.txt
index af3d43670..08776dc2f 100644
--- a/misc/buildroot/configs/README.txt
+++ b/misc/buildroot/configs/README.txt
@@ -4,9 +4,12 @@ AVAILABLE CONFIGURATIONS
arm-defconfig
Builds an ARM toolchain using gcc 3.4.5
-arm-defconfig-4.2.4
+arm920t-defconfig-4.2.4
+arm926t-defconfig-4.2.4
Builds an ARM toolchain using gcc 4.2.4. This configuration
- builds both gcc and g++.
+ builds both gcc and g++. There are two versions: one for
+ arm920t (armv4t) and arm926t (arv5t) because of differences
+ in the way that soft floating is handled in these two architectures.
NOTE: At present, there are issues with some of the binutils
programs (arm-elf-objcopy in particular) that cause Floating
diff --git a/misc/buildroot/configs/arm-defconfig-4.2.4 b/misc/buildroot/configs/arm920t-defconfig-4.2.4
index 155d4b5a3..9d7a2e6c6 100644
--- a/misc/buildroot/configs/arm-defconfig-4.2.4
+++ b/misc/buildroot/configs/arm920t-defconfig-4.2.4
@@ -22,11 +22,12 @@ BR2_arm=y
# BR2_h8300 is not set
# BR2_sparc is not set
# BR2_x86_64 is not set
-BR2_generic_arm=y
+# BR2_generic_arm is not set
# BR2_arm610 is not set
# BR2_arm710 is not set
# BR2_arm720t is not set
-# BR2_arm920t is not set
+# BR2_arm740t is not set
+BR2_arm920t=y
# BR2_arm922t is not set
# BR2_arm926t is not set
# BR2_arm1136jf_s is not set
@@ -34,10 +35,13 @@ BR2_generic_arm=y
# BR2_sa1100 is not set
# BR2_xscale is not set
# BR2_iwmmxt is not set
-BR2_ARM_TYPE="GENERIC_ARM"
+BR2_ARM_TYPE="ARM920T"
BR2_ARM_OABI=y
# BR2_ARM_EABI is not set
BR2_ARCH="arm"
+BR2_GCC_TARGET_TUNE="arm920t"
+BR2_GCC_TARGET_ARCH="armv4t"
+BR2_GCC_TARGET_ABI="apcs-gnu"
BR2_ENDIAN="LITTLE"
#
diff --git a/misc/buildroot/configs/arm926t-defconfig-4.2.4 b/misc/buildroot/configs/arm926t-defconfig-4.2.4
new file mode 100644
index 000000000..f247eab5e
--- /dev/null
+++ b/misc/buildroot/configs/arm926t-defconfig-4.2.4
@@ -0,0 +1,109 @@
+#
+# Automatically generated make config: don't edit
+#
+BR2_HAVE_DOT_CONFIG=y
+# BR2_alpha is not set
+BR2_arm=y
+# BR2_armeb is not set
+# BR2_avr32 is not set
+# BR2_bfin is not set
+# BR2_cris is not set
+# BR2_i386 is not set
+# BR2_m32c is not set
+# BR2_m68k is not set
+# BR2_m68hc11 is not set
+# BR2_m68hc12 is not set
+# BR2_mips is not set
+# BR2_mipsel is not set
+# BR2_nios2 is not set
+# BR2_powerpc is not set
+# BR2_sh is not set
+# BR2_sh64 is not set
+# BR2_h8300 is not set
+# BR2_sparc is not set
+# BR2_x86_64 is not set
+# BR2_generic_arm is not set
+# BR2_arm610 is not set
+# BR2_arm710 is not set
+# BR2_arm720t is not set
+# BR2_arm740t is not set
+# BR2_arm920t is not set
+# BR2_arm922t is not set
+BR2_arm926t=y
+# BR2_arm1136jf_s is not set
+# BR2_sa110 is not set
+# BR2_sa1100 is not set
+# BR2_xscale is not set
+# BR2_iwmmxt is not set
+BR2_ARM_TYPE="ARM926T"
+BR2_ARM_OABI=y
+# BR2_ARM_EABI is not set
+BR2_ARCH="arm"
+BR2_GCC_TARGET_TUNE="arm9tdmi"
+BR2_GCC_TARGET_ARCH="armv5te"
+BR2_GCC_TARGET_ABI="apcs-gnu"
+BR2_ENDIAN="LITTLE"
+
+#
+# Build options
+#
+BR2_WGET="wget --passive-ftp"
+BR2_SVN="svn co"
+BR2_ZCAT="zcat"
+BR2_BZCAT="bzcat"
+BR2_TAR_OPTIONS=""
+BR2_DL_DIR="$(BASE_DIR)/../archives"
+BR2_SOURCEFORGE_MIRROR="easynews"
+BR2_ATMEL_MIRROR="ftp://at91dist:distrib@81.80.104.162/AT91_Third_Party_Design_Flow/Linux_Host/"
+BR2_AT91_PATCH_MIRROR="http://maxim.org.za/AT91RM9200/2.6/"
+BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
+BR2_NUTTX_DIR="$(TOPDIR)/../nuttx"
+BR2_TOPDIR_PREFIX=""
+BR2_TOPDIR_SUFFIX=""
+BR2_GNU_BUILD_SUFFIX="arm-elf"
+BR2_GNU_TARGET_SUFFIX="elf"
+# BR2_PREFER_IMA is not set
+# BR2_DEPRECATED is not set
+
+#
+# Toolchain Options
+#
+
+#
+# Binutils Options
+#
+# BR2_BINUTILS_VERSION_2_17 is not set
+BR2_BINUTILS_VERSION_2_19=y
+BR2_BINUTILS_VERSION="2.19"
+BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
+
+#
+# GCC Options
+#
+# BR2_GCC_VERSION_3_4_6 is not set
+BR2_GCC_VERSION_4_2_4=y
+BR2_GCC_SUPPORTS_SYSROOT=y
+BR2_GCC_VERSION="4.2.4"
+# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set
+BR2_EXTRA_GCC_CONFIG_OPTIONS=""
+BR2_INSTALL_LIBSTDCPP=y
+# BR2_INSTALL_LIBGCJ is not set
+# BR2_INSTALL_OBJC is not set
+# BR2_INSTALL_FORTRAN is not set
+
+#
+# Gdb Options
+#
+# BR2_PACKAGE_GDB is not set
+# BR2_PACKAGE_GDB_SERVER is not set
+# BR2_PACKAGE_GDB_HOST is not set
+
+#
+# Common Toolchain Options
+#
+# BR2_PACKAGE_SSTRIP_TARGET is not set
+# BR2_PACKAGE_SSTRIP_HOST is not set
+# BR2_ENABLE_MULTILIB is not set
+BR2_LARGEFILE=y
+BR2_SOFT_FLOAT=y
+BR2_TARGET_OPTIMIZATION="-Os -pipe"
diff --git a/misc/buildroot/toolchain/gcc/Makefile.in b/misc/buildroot/toolchain/gcc/Makefile.in
index 3d28e3a4e..54b81a51b 100644
--- a/misc/buildroot/toolchain/gcc/Makefile.in
+++ b/misc/buildroot/toolchain/gcc/Makefile.in
@@ -44,6 +44,20 @@ TARGET_SOFT_FLOAT:=
ARCH_FPU_SUFFIX:=
endif
+# some additional defaults
+ifneq ($(strip $(subst ",,$(BR2_GCC_TARGET_ARCH))),)
+# ")))
+GCC_WITH_ARCH:=--with-arch=$(BR2_GCC_TARGET_ARCH)
+endif
+ifneq ($(strip $(subst ",,$(BR2_GCC_TARGET_TUNE))),)
+# ")))
+GCC_WITH_TUNE:=--with-tune=$(BR2_GCC_TARGET_TUNE)
+endif
+ifneq ($(strip $(subst ",,$(BR2_GCC_TARGET_ABI))),)
+# ")))
+GCC_WITH_ABI:=--with-abi=$(BR2_GCC_TARGET_ABI)
+endif
+
ifeq ($(strip $(BR2_PACKAGE_GCC_TARGET)),y)
# pull in config opts from the user
EXTRA_TARGET_GCC_CONFIG_OPTIONS:=$(strip $(subst ",, $(BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS)))
diff --git a/misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk b/misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk
index 5c088a9ff..2214cfda2 100644
--- a/misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk
+++ b/misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk
@@ -123,7 +123,7 @@ $(GCC_BUILD_DIR)/.configured: $(GCC_DIR)/.patched $(GCC_STAGING_PREREQ)
$(THREADS) \
$(MULTILIB) \
$(SOFT_FLOAT_CONFIG_OPTION) \
- $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
+ $(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
$(GCC_USE_SJLJ_EXCEPTIONS) \
$(DISABLE_LARGEFILE) \
$(EXTRA_GCC_CONFIG_OPTIONS));
diff --git a/misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk b/misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk
index df47208f5..41c0590ef 100644
--- a/misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk
+++ b/misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk
@@ -121,7 +121,7 @@ $(GCC_BUILD_DIR)/.configured: $(GCC_DIR)/.patched $(GCC_STAGING_PREREQ)
$(THREADS) \
$(MULTILIB) \
$(SOFT_FLOAT_CONFIG_OPTION) \
- $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
+ $(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
$(GCC_USE_SJLJ_EXCEPTIONS) \
$(DISABLE_LARGEFILE) \
$(EXTRA_GCC_CONFIG_OPTIONS));