Difference between revisions of "UWAR:MSP"

From PublicWiki
Jump to: navigation, search
(Building a Toolchain)
Line 7: Line 7:
 
     /projects/ubicomp/uwar/arm-linux
 
     /projects/ubicomp/uwar/arm-linux
  
== Building a Toolchain ==
+
== Building an MSP Toolchain ==
  
 
Interested in building a toolchain for the MSP's ARM XScale processor?  Here's how I made it work...
 
Interested in building a toolchain for the MSP's ARM XScale processor?  Here's how I made it work...

Revision as of 05:22, 21 August 2007


Existing Toolchain

An existing toolchain for the MSP can be found at

   /projects/ubicomp/uwar/arm-linux

Building an MSP Toolchain

Interested in building a toolchain for the MSP's ARM XScale processor? Here's how I made it work...

You need to download Crosstool, a set for script and patches for building crosscompile toolchains.

We'll be specifically targeting the following package profile:

gcc-3.4.3 glibc-2.3.2

Since we're targeting an ARM processor, we need to apply a few patches for the ARM architecture with VFP floating point support, as made available here.

Specifically, you need the following patches:

   patches/gcc-3.4.3/gcc-3.4.3-arm-softvfp.patch
   patches/glibc-2.3.2/glibc-2.3.2-initfini.patch
   patches/glibc-2.3.2/glibc-2.3.2-output_format.patch
   patches/glibc-2.3.2/glibc-2.3.2-sysctl.patch
   patches/glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-initfini.patch

Once you've downloaded, unpacked, and copied the patches into their appropriate locations in the crosstool tree, you're read to start building. My build script looked like the following:

  #!/bin/sh
  set -ex
  
  export TARBALLS_DIR=`pwd`/downloads
  export RESULT_TOP=/usr/local/arm-linux
  
  export GCC_LANGUAGES="c,c++"
  
  export KERNELCONFIG=`pwd`/arm.config
  export TARGET=arm-linux
  export TARGET_CFLAGS="-O"
  export GCC_EXTRA_CONFIG="--with-cpu=iwmmxt  --enable-cxx-flags=-mcpu=iwmmxt --with-fpu=vfp"
  export GLIBC_EXTRA_CONFIG="--without-fp"
  
  export BINUTILS_DIR=binutils-2.15
  export GCC_DIR=gcc-3.4.3
  export GLIBC_DIR=glibc-2.3.2
  export LINUX_DIR=linux-2.6.14
  export LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
  export GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
  
  sh all.sh --notest
  
  echo Done.

Let 'em rip.