AVAILABLE CONFIGURATIONS ^^^^^^^^^^^^^^^^^^^^^^^^ arm-defconfig Builds an ARM toolchain using gcc 3.4.5 arm7tdmi-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++. There are thred versions: one for arm7tdmi (armv4t) , arm920t (armv4t) and arm926t (arv5t) because of differences in the way that soft floating is handled in between the armv4t and arm5t architectures. NOTE: At present, there are issues with some of the binutils programs (arm-elf-objcopy in particular) that cause Floating point exceptions when trying to build NuttX on certain platforms, specifically, those that execute from FLASH and use arm-elf-objcopy to relocate the .data section into flash. This bug is probably due to improperly positioned sections and can probably fixed by changing the architecture's ld.script file. cortexm3-defconfig-4.3.3 Builds an ARM toolchain for the Cortex-M3 using gcc 4.3.3. This configuration builds both gcc and g++. NOTE: This configuration is untested as of this writing. bfin-defconfig-4.2.4 Builds an Blackfin toolchain using gcc 4.2.4 h8300_config Builds an H8/300 toolchain using gcc 3.4.5 m68hc11-config Builds an hc11 toolchain using gcc 3.4.5 m68k-config Builds an M68K toolchain using gcc 3.4.5 sh-defconfig Builds an SH-1/2 toolchain using gcc 3.4.5 GENERAL BUILD STEPS ^^^^^^^^^^^^^^^^^^^ 1. CD to the correct directory. Change to the directory just above the NuttX installation. If is where NuttX is installed, then cd to /.. 2. Get and Install the buildroot Module a. Using a release tarball: cd /.. Download the appropriate buildroot package. unpack the buildroot package rename the directory to buildroot b. Using CVS Check out the misc/buildroot module. CVS checkout instructions: cvs -d:pserver:anonymous@nuttx.cvs.sourceforge.net:/cvsroot/nuttx login cvs -z3 -d:pserver:anonymous@nuttx.cvs.sourceforge.net:/cvsroot/nuttx co -P misc/buildroot Move the buildroot Source Tree and create the archive directory mv misc/buildroot . Make the archive directory: mkdir archive The /../buildroot is where the toolchain is built; The /../archive directory is where toolchain sources will be downloaded. 3. Make sure that NuttX is configured cd /tools ./configure.sh 4. Configure and Make the buildroot cd buildroot cp configs/ .config make oldconfig make This will download the large source packages for the toolchain and build the toolchain. The resulting binaries will be under buildroot/build_. There will also be a large build directory called something like toolchain_build_; this directory can be removed once the build completes successfully. Where is one of the configuration files listed above and is an archtecture name. Examples: build_m32c, build_arm_nofpu, etc. Cygwin GCC BUILD NOTES ^^^^^^^^^^^^^^^^^^^^^^ On Cygwin, the buildroot 'make' command will fail with an error like: "... build/genchecksum cc1-dummy > cc1-checksum.c opening cc1-dummy: No such file or directory ..." This is caused because on Cygwin, host executables will be generated with the extension .exe and, apparently, the make variable "exeext" is set incorrectly. A work around after the above occurs is: cd toolchain_build_/gcc-4.2.4-build/gcc # Go to the directory where error occurred mv cc1-dummy.exe cc1-dummy # Rename the executable without .exe rm cc1-checksum.c # Get rid of the bad generated file Then resume the buildroot make: cd - # Back to the buildroot make directory make # Restart the build If you build g++, you will see another similar error: ... build/genchecksum cc1plus-dummy > cc1plus-checksum.c opening cc1plus-dummy: No such file or directory ... The fix is similar: cd toolchain_build_/gcc-4.2.4-build/gcc # Go to the directory where error occurred mv cc1plus-dummy.exe cc1plus-dummy # Rename the executable without .exe rm cc1plus-checksum.c # Get rid of the bad generated file Then resume the buildroot make: cd - # Back to the buildroot make directory make # Restart the build