Searching the Internet for information on how to build arm toolchain from scratch I realize that it is very hard to find  information about this matter (and recent one even harder). I will try to fill this lack of information and try to build toolchain. My main goal is to use a component based on the GNU public license, and using them in as the newest version as it is possible.

What is toolchain ? (according to wikipedia):

In software, a toolchain is the set of programming tools that are used to create a product (typically another computer program or system of programs). The tools may be used in a chain, so that the output of each tool becomes the input for the next, but the term is used widely to refer to any set of linked development tools.

Requirements

  • Cross compiler, I create one using corsstool-ng and describe this process in  previous post. I will use arm-unknown-linux-gnueabi as entry point compiler.
  • $TARGET is defined as my destination directory:

Procedure

Kernel header files

  1. clone linux git repository

  1. install headers $TARGET is home of our toolchain

Libraries (gmp, mpfr, mpc)

  1. GMP (GNU Multiple Precision Arithmetic Library) – changeset used: 14765:0acae62fa162

* As I said before. I use “latest greatest” ;P version, and for gmp we can reach it using:

  • configure

  • compile

  1. MPFR (GNU Multiple Precision Floating-Point Reliably) – version: r8103

– get latest version

  • create configuration file

  • configure

  • compile

  1. MPC (Multiple Precision Complex)- version: r1146

– checkout svn

  • create configuration file

  • configure

  • compile

  1. Binutils – collection of a GNU binary tools:

– checkout version from anonymous cvs

  • login create directory for checkout

checkout sources

  • configure

  • compile

  • to check if everything was made correctly

it should show that it use library compiled previously by us:

This set gives us a solid base to build the compiler. However, it will be in the next section.