Toolchains

Ricardo Padilha edited this page Apr 7, 2015 · 2 revisions

Toolchains

Drobo5N (official)

Download page

  • GCC: 4.4.5
  • GLIBC: 2.11.1 (libc-2.11.1.so)
  • GLIBCXX: 3.4.13 (libstdc++.so.6.0.13)

Output of gcc --version:

arm-marvell-linux-gnueabi-gcc (FSF GNU GCC branch-4.4.5. Marvell GCC 201106-257.a1ba7f96) 4.4.5 20100614 (prerelease)

Output of gcc --target-help:

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):
    marvell-pj4, marvell-pj1, marvell-fv7, marvell-f, cortex-m1, cortex-m3,
    cortex-r4f, cortex-r4, cortex-a9, cortex-a8, arm1156t2-s, mpcore,
    mpcorenovfp, arm1176jzf-s, arm1176jz-s, arm1136jf-s, arm1136j-s,
    arm1026ej-s, arm926ej-s, iwmmxt2, iwmmxt, xscale, arm1022e, arm1020e,
    arm10e, arm968e-s, arm966e-s, arm946e-s, arm9e, arm1020t, arm10tdmi, ep9312,
    arm940t, arm922t, arm920t, arm920, arm9tdmi, arm9, arm740t, arm720t,
    arm710t, arm7tdmi-s, arm7tdmi, strongarm1110, strongarm1100, strongarm110,
    strongarm, arm810, arm8, arm7dmi, arm7dm, arm7m, arm7500fe, arm7500,
    arm7100, arm710c, arm720, arm710, arm700i, arm700, arm70, arm7di, arm7d,
    arm7, arm620, arm610, arm600, arm60, arm6, arm3, arm250, arm2

  Known ARM architectures (for use with the -march= option):
    iwmmxt2, iwmmxt, ep9312, armv7-m, armv7-r, armv7-a, armv7, armv6-m, armv6t2,
    armv6zk, armv6z, armv6k, armv6j, armv6, armv5te, armv5e, armv5t, armv5,
    armv4t, armv4, armv3m, armv3, armv2a, armv2

Install

cd ~/xtools/toolchain
mkdir 5n
cd 5n
wget -O arm7-tools.tgz https://copy.com/nBZXoz3NdvFX%2FDroboAppsDS%2Farm7-tools.gz?download=1
tar zxf arm7-tools.tgz

Drobo5N (alternative)

Download page (CodeSourcery 2010.09-50)

  • GCC: 4.5.1
  • GLIBC: 2.11.1 (libc-2.11.1.so)
  • GLIBCXX 3.4.14 (libstdc++.so.6.0.14)

Pros: More recent version of GCC, see here for a changelog.

Cons: This is not a perfect match for the 5N. It has a newer version of GLIBCXX, which may cause some C++ apps to complain about missing symbols, which can be worked around by including the link flag -static-libstdc++. Furthermore, shared libraries compiled with this toolchain may cause unexpected reloc type 0x0d error messages.

Output of gcc --version:

arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2010.09-50) 4.5.1

Output of gcc --target-help:

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):
    cortex-m0, cortex-m1, cortex-m3, cortex-m4, cortex-r4f, cortex-r4,
    cortex-a9, cortex-a8, cortex-a5, arm1156t2f-s, arm1156t2-s, mpcore,
    mpcorenovfp, arm1176jzf-s, arm1176jz-s, arm1136jf-s, arm1136j-s,
    arm1026ej-s, arm926ej-s, iwmmxt2, iwmmxt, xscale, arm1022e, arm1020e,
    arm10e, arm968e-s, arm966e-s, arm946e-s, arm9e, arm1020t, arm10tdmi, ep9312,
    arm940t, arm922t, arm920t, arm920, arm9tdmi, arm9, arm740t, arm720t,
    arm710t, arm7tdmi-s, arm7tdmi, strongarm1110, strongarm1100, strongarm110,
    strongarm, arm810, arm8, arm7dmi, arm7dm, arm7m, arm7500fe, arm7500,
    arm7100, arm710c, arm720, arm710, arm700i, arm700, arm70, arm7di, arm7d,
    arm7, arm620, arm610, arm600, arm60, arm6, arm3, arm250, arm2

  Known ARM architectures (for use with the -march= option):
    iwmmxt2, iwmmxt, ep9312, armv7e-m, armv7-m, armv7-r, armv7-a, armv7,
    armv6-m, armv6t2, armv6zk, armv6z, armv6k, armv6j, armv6, armv5te, armv5e,
    armv5t, armv5, armv4t, armv4, armv3m, armv3, armv2a, armv2

Install

cd ~/xtools/toolchain
wget -O arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 https://sourcery.mentor.com/GNUToolchain/package1600/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar jxf arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
mv arm-2010.09 5n-alt

DroboFS (official)

Download page (CodeSourcery 2007q1-21)

  • GCC: 4.2.0
  • GLIBC: 2.5 (libc-2.5.so)
  • GLIBCXX: 3.4.9 (libstdc++.so.6.0.9)

Output of gcc --version:

arm-none-linux-gnueabi-gcc (CodeSourcery Sourcery G++ Lite 2007q1-21) 4.2.0 20070413 (prerelease)

Output of gcc --target-help:

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):
    marvell-pj4, marvell-pj1, marvell-fv7, marvell-f, cortex-m1, cortex-m3,
    cortex-r4f, cortex-r4, cortex-a9, cortex-a8, arm1156t2-s, mpcore,
    mpcorenovfp, arm1176jzf-s, arm1176jz-s, arm1136jf-s, arm1136j-s,
    arm1026ej-s, arm926ej-s, iwmmxt2, iwmmxt, xscale, arm1022e, arm1020e,
    arm10e, arm968e-s, arm966e-s, arm946e-s, arm9e, arm1020t, arm10tdmi, ep9312,
    arm940t, arm922t, arm920t, arm920, arm9tdmi, arm9, arm740t, arm720t,
    arm710t, arm7tdmi-s, arm7tdmi, strongarm1110, strongarm1100, strongarm110,
    strongarm, arm810, arm8, arm7dmi, arm7dm, arm7m, arm7500fe, arm7500,
    arm7100, arm710c, arm720, arm710, arm700i, arm700, arm70, arm7di, arm7d,
    arm7, arm620, arm610, arm600, arm60, arm6, arm3, arm250, arm2

  Known ARM architectures (for use with the -march= option):
    iwmmxt2, iwmmxt, ep9312, armv7-m, armv7-r, armv7-a, armv7, armv6-m, armv6t2,
    armv6zk, armv6z, armv6k, armv6j, armv6, armv5te, armv5e, armv5t, armv5,
    armv4t, armv4, armv3m, armv3, armv2a, armv2

Install

cd ~/xtools/toolchain
wget -O arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 https://sourcery.mentor.com/GNUToolchain/package1490/public/arm-none-linux-gnueabi/arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar jxf arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mv arm-2007q1 fs

DroboFS (alternative)

Download page (CodeSourcery 2009q1-203)

  • GCC: 4.3.3
  • GLIBC: 2.8 (libc-2.8.so)
  • GLIBCXX: 3.4.10 (libstdc++.so.6.0.10)

Pros: More recent version of GCC, see here for a changelog. The official toolchain does not allow static linking of atomic builtins. The earliest version of the CodeSourcery toolchain that supports it is 2009q1-117, according to this PDF. We use the 2009q1-203 update because it includes a lot of bugfixes. The lack of support for statically linking atomic builtins is the cause of compilation errors such as undefined reference to __sync_fetch_and_add_4.

Cons: This is not a perfect match for the FS. It has a newer versions of both GLIBC and GLIBCXX, which may cause missing symbols errors. Use this toolchain only when statically linking everything. If the only problem are the atomic builtins, it is possible to work around that using a static library.

Output of gcc --version:

arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q1-203) 4.3.3

Output of gcc --target-help:

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):
    cortex-m0, cortex-m1, cortex-m3, cortex-r4f, cortex-r4, cortex-a9,
    cortex-a8, arm1156t2-s, mpcore, mpcorenovfp, arm1176jzf-s, arm1176jz-s,
    arm1136jf-s, arm1136j-s, arm1026ej-s, arm926ej-s, marvell-f, iwmmxt2,
    iwmmxt, xscale, arm1022e, arm1020e, arm10e, arm968e-s, arm966e-s, arm946e-s,
    arm9e, arm1020t, arm10tdmi, ep9312, arm940t, arm922t, arm920t, arm920,
    arm9tdmi, arm9, arm740t, arm720t, arm710t, arm7tdmi-s, arm7tdmi,
    strongarm1110, strongarm1100, strongarm110, strongarm, arm810, arm8,
    arm7dmi, arm7dm, arm7m, arm7500fe, arm7500, arm7100, arm710c, arm720,
    arm710, arm700i, arm700, arm70, arm7di, arm7d, arm7, arm620, arm610, arm600,
    arm60, arm6, arm3, arm250, arm2

  Known ARM architectures (for use with the -march= option):
    iwmmxt2, iwmmxt, ep9312, armv7-m, armv7-r, armv7-a, armv7, armv6-m, armv6t2,
    armv6zk, armv6z, armv6k, armv6j, armv6, armv5te, armv5e, armv5t, armv5,
    armv4t, armv4, armv3m, armv3, armv2a, armv2

Install

cd ~/xtools/toolchain
wget -O arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 https://sourcery.mentor.com/GNUToolchain/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar jxf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mv arm-2009q1 fs-alt

DroboShare

Download page (CodeSourcery 2006q1-6)

  • GCC: 4.2.0
  • GLIBC: 2.3.6 (libc-2.3.6.so)
  • GLIBCXX: 3.4.7 (libstdc++.so.6.0.7)

Output of gcc --version:

arm-none-linux-gnueabi-gcc (GCC) 4.1.0 (CodeSourcery ARM 2006q1-6)

Install

cd ~/xtools/toolchain
wget -O arm-2006q1-6-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 https://sourcery.mentor.com/GNUToolchain/package2727/public/arm-none-linux-gnueabi/arm-2006q1-6-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar zxf arm-2006q1-6-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mv arm-none-linux-gnueabi share