Toolchain » History » Version 2
Anonymous, 02/19/2016 10:49 PM
1 | 1 | tsaitgaist | To compile osmocomBB or SIMtrace for the target we need a GNU Toolchain for ARM. |
---|---|---|---|
2 | There are various pre-compiled toolchains available but not all of them will produce working firmware. |
||
3 | We will try to support all these configurations but it might take a while to identify the source of a problem. |
||
4 | |||
5 | === GNUArm === |
||
6 | |||
7 | The toolchains that are known working are the [http://www.gnuarm.com GNUArm.com] ones. |
||
8 | They provide a ARM GCC 3.4.3 for x86 [http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 here] and a ARM GCC 4.0.2 for x86_64 [http://gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 here]. |
||
9 | The toolchain is relocatable and can be extracted in your home directory. |
||
10 | |||
11 | For x86 |
||
12 | {{{ |
||
13 | wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 |
||
14 | tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 |
||
15 | mv gnuarm-* ~/gnuarm |
||
16 | }}} |
||
17 | |||
18 | For amd64 |
||
19 | {{{ |
||
20 | wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 |
||
21 | tar xf bu-*_gcc-*-c-c++_nl-*_gi-*_x86-64.tar.bz2 |
||
22 | mv gnuarm-* ~/gnuarm |
||
23 | }}} |
||
24 | |||
25 | To be able to use the toolchain, add the crosscompilers to your PATH |
||
26 | {{{ |
||
27 | export PATH=~/gnuarm/bin:$PATH |
||
28 | }}} |
||
29 | |||
30 | 2 | tsaitgaist | === Build one from source === |
31 | |||
32 | If you want to build your own toolchain, known to be working with OsmocomBB, see here: [wiki:GnuArmToolchain]. |
||
33 | |||
34 | |||
35 | 1 | tsaitgaist | === Ubuntu packages === |
36 | 2 | tsaitgaist | gnuarm packages from following ppa are known to work. They are known '''not'' to work for SIMtrace |
37 | 1 | tsaitgaist | {{{ |
38 | sudo add-apt-repository ppa:bdrung/bsprak |
||
39 | sudo apt-get update |
||
40 | sudo apt-get install arm-elf-toolchain |
||
41 | }}} |
||
42 | |||
43 | === Mac OS X === |
||
44 | |||
45 | Apparently the arm-elf-gcc 4.3.2 from ports for mac os x can compile the sourcecode as well after symlinking /opt/local/bin/arm-elf-ranlib to /opt/local/bin/arm-elf-linux-ranlib and /opt/local/bin/arm-elf-strip to /opt/local/bin/arm-elf-linux-strip. |
||
46 | If you omit the links, there will be unresolvable references to symbols in the libraries. |