diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-04-23 02:27:06 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-04-23 02:27:06 +0000 |
commit | 239679bf37b4d5532beaf40a3207de9c238d0232 (patch) | |
tree | 5f56c128113fe6720caad1cd93a79fe6321d70d6 /misc | |
parent | f8e7d6864a9a99101b69cfcf1d3ef623616ac0f3 (diff) | |
download | px4-nuttx-239679bf37b4d5532beaf40a3207de9c238d0232.tar.gz px4-nuttx-239679bf37b4d5532beaf40a3207de9c238d0232.tar.bz2 px4-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
Diffstat (limited to 'misc')
-rw-r--r-- | misc/buildroot/ChangeLog | 5 | ||||
-rw-r--r-- | misc/buildroot/Config.in | 40 | ||||
-rw-r--r-- | misc/buildroot/configs/README.txt | 7 | ||||
-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.4 | 109 | ||||
-rw-r--r-- | misc/buildroot/toolchain/gcc/Makefile.in | 14 | ||||
-rw-r--r-- | misc/buildroot/toolchain/gcc/gcc-nuttx-3.x.mk | 2 | ||||
-rw-r--r-- | misc/buildroot/toolchain/gcc/gcc-nuttx-4.x.mk | 2 |
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)); |