desktop version

[ARCHIVE][December 16, 2014] Building a GNU Cross tool-chain for ARM926EJ-S


This is a deprecated content.
An up-to-date version of it is here

ARM926EJ-S is a 32-bit ARM processor supporting ARMv5TE instruction set. ARM processors on Linux are well supported by the GNU tool-chain and Crosstool-NG. We propose to build a cross tool-chain for the arm-926ejs-linux-gnueabi target (i.e. a ARM926EJ-S host machine running Linux), with the help of Crosstool-NG 1.18.0. With that cross tool-chain, you can for example build applications for Linux. We provides you a tarball with all the necessary material inside: Crosstool-NG 1.18.0, GNU tool-chain sources, configuration files, scripts,…

1. What you get after the build ?

You get a GNU cross tool-chain for Linux/ARM926EJ-S:
  • GNU GCC 4.7.2 C/C++ compiler (gcc, g++,…)
  • GNU binutils 2.22 (objdump, readelf,…)
  • GNU Standard C Library (glibc) 2.16.0
  • GNU debugger 7.4.1 (gdb)
We followed these instructions with the following Crosstool-NG 1.18.0 configuration at step 5 (only changes are shown):
Target options --->
  Target Architecture (arm) --->
    (armv5te) Architecture level
    (arm926ej-s) Emit assembly for CPU
    (arm926ej-s) Tune for CPU
    (vfp) Use specific FPU
  Floating point: (software (no FPU)) --->

Toolchain options --->
  (926ejs) Tuple’s vendor string

Operating System --->
  Target OS (linux) --->
  Linux kernel version (3.7.2)

Binary utilities --->
  binutils version (2.22) --->

C compiler --->
  gcc version (4.7.2) --->
  [*] C++
  [ ] Link libstdc++ statically into the gcc binary

C-library --->
  C library (glibc) --->
  glibc version (2.16.0) --->
  (-g) gcc extra flags
  Minimum supported kernel version (Specific kernel version) --->
    Specific kernel version
  (2.6.9) Minimum kernel version to support

Debug facilities --->
  [*] gdb --->

2. Requirements

  • A Linux host machine (may work on other Un*x machines)
  • The following tools: grep, sed, bash, cut, install, make, gcc, awk, bison, flex, makeinfo, automake, libtool, stat, curl, cvs, patch, tar, gzip, bzip2, lzma, readlink, binutils, ncurses, expat
  • make 3.82 (may not work with make 3.81)

3. Get the material

Download that tarball. It contains all the necessary material (scripts and source codes) to get a working GNU cross tool-chain for ARM926EJ-S.

4. Uncompress the tarball

$ tar zxvf crosstool-source-v3.tar.gz

5. Build the cross tool-chain

Run the building script:
$ cd crosstool-source-v3
$ ./ all arm-926ejs-linux-gnueabi

Be patient...the process of building the cross tool-chain is very long. Once finished, the cross tool-chain is in arm-926ejs-linux-gnueabi sub-directory.

What's new ?

The web site has been migrated to a new server. Please note that contact mails have changed too. More to come…stay tuned!

Virtual Platforms



We would like to thank Digiteo that supported us in making the UNISIM virtual platforms available to the community.


We presented a poster at the poster sessions of the HiPEAC'12 conference, January 23-25, 2012, Paris, France. The HiPEAC conference provides a forum for experts in computer architecture, programming models, compilers, and operating systems for embedded and general-purpose systems. The conference aims at the dissemination of advanced scientific knowledge and the promotion of international contacts among scientists from academia and industry.

On-going evaluation

A UNISIM virtual platform of a Xilinx Virtex-5 FXT is being evaluated by project partners in the context of OPEES (Open Platform for the Engineering of Embedded Systems), a European project that aims to ensure long-term availability of critical / embedded systems engineering technologies to secure industry competitiveness and development.