Using Buildroot

The first thing to do is to build the buildroot toolchain for your target architecture, version, and other preferences. In the escher CVS tree there is a folder called crosscompile in which this should take place. Once this is done, you should take advantage of compiler setup scripts which are distributed throughout the installation (as appropriate) for individual builds. These scripts should have the proper setup variables, flags, and other information done so you can build and deploy the EOCP.

Building a generic crosscompiler toolchain for the xscale subarchitecture of arm

Currently building and using the crosscompiler toolchain is only supported using linux, unix, or cygwin interfaces. However, the code itself, if built in the Visual Studio environment, should also execute correctly. The EOCP core developers generally do major development and testing with the Visual Studio builds, and deploy (with regression tests, of course) on linux/unix platforms.

Enter the $ESCHER CVS directory. In this example, that is /usr/local/escher

[sprinkle@ransom ~]
$ cd /usr/local/escher/crosscompile

[sprinkle@ransom /usr/local/escher/crosscompile]
$ ./checkout xscale
 

This will take a long, long (long) time. If you are building for the first time on your machine, then a long time will be taken to download the source code and tarballs of the components which are chosen. To speed this up for future compiles, obtain a copy of the dl directory from another developer (or from a weblink, if we post it) to get the files from a dependably fast server at Berkeley. If you place this directory in the crosscompile directory, i.e., $ESCHER/crosscompile/dl, then the checkout script will copy those tarballs to the correct directory.

Building a crosscompiler toolchain gumstix

If you are building for the gumstix boards we are using then xscale is the correct crosscompiler to build, but there are some minor kernel differences for which it makes sense to checkout a *particular* revision of the buildroot chain. In fact, this revision is maintained by the gumstix folks.

[sprinkle@ransom ~]
$ cd /usr/local/escher/crosscompile

[sprinkle@ransom /usr/local/escher/crosscompile]
$ ./checkout gumstix
 

You will now see a menu which will ask you to choose which revision of the gumstix kernel you would like to build for. Currently, 2.6.11gum is the best choice. Once you choose this, you should see some instructions which will ask you to run a particular make command, with command line parameters that will ensure that the C++ compiler is built. Run those commands, and go grab yourself a cup of coffee, play 18 holes of golf, or embark on another PhD. It takes awhile.

Building a crosscompiler for other architectures

To build for deployment on a powerpc embedded machine you will need to specify different options than during the xscale build. We are currently not using anything like this.

Rebuilding the crosscompiler toolchain

It is possible to rebuild part of the crosscompiler toolchain, or restarting the build if it fails for some reason, simply by re-executing the checkout script.