0. Building requirements linux-2.6.9.tar.gz gcc-2.96 or above in i386 tarballs from open source community Linux 2GB free disk space 1. Directory tree build.sh: building script patches: all patches needed by binutils, glibc, gcc sources: all tarballs: driscoll-binutils-2.14.90, glibc-2.3.2, glibc-linuxthreads-2.3.2, gcc-3.4.3, linux-2.6.9 2. How to build toolchain? % cp linux-2.6.9.tar.gz ./sources % ./build.sh 2>&1 | tee sh.log wait for about 30 minutes in P4/3GHz,512MB Ram. 3. How to adjust the building script % vi build.sh define RESULT_TOP as you will, arm-linux/ will be placed into $RESULT_TOP/. 4. How to debug? If error, you may read sh.log to see where error occurs? Make sure you have permissions to the installed directory. Make sure the name of tarballs must be consistent with the variables in build.sh, e.g: if you use binutils-2.14.90.0.7.tar.gz, the $BINUTILSDISTO must be binutils-2.14.90.0.7. 5. Results By default, the toolchain will be placed in /usr/local/arm-linux. All tarballs will be unpacked into build/ directory. build-glibc-headers, build-binutils, build-gcc-core, build-gcc, build-glibc and linux-2.6.9 will be created in build/ directory. 6. How to use toolchain? You can use new toolchain by the following ways: % export PATH=/usr/local/arm-linux/bin:$PATH You can use 'arm-linux-gcc -v' to make sure you are using correct toolchain. 7. how to compile code with driscoll instructions? 1) to asm file (e.g, source.s) with driscoll assembly instructions % arm-linux-as -mcpu=iwmmxt2 source.s 2) to c file (e.g, source.c) with inline driscoll assembly instructions % arm-linux-gcc -Wa,-mcpu=iwmmxt2 source.c