Is your project stuck?

Try Zylin's Roadside Assistance services
GCC & GDB binaries
GCC and GDB binary toolchain for embedded development. Free and at your own peril!


Windows MinGW Download Download Download
Crossbuild Windows hosted from Debian Download Download Download
Cygwin Download Download Download
Linux Download Download Download
Mac x86 Download Download Download
Mac PowerPC Download Download Download

GDB versions

GDB 6.8 is used above, but for testing purposes it can be handy to have some older versions of GDB around(the GDB remote protocols are evolving...).

Cygwin only here...

Decompress / install

Decompress the binaries anywhere you want and optionally point your PATH environment variable to point to install/bin.

The Windows binaries uses the 7zip compression format. Download 7zip here:

The Cygwin/Linux/Mac uses tar.bz2 format which you, as a Cygwin/Linux/Mac shell user will be familiar with(otherwise google on tar bz2).

Other targets?

Any other targets of interest? Post to zylin-discuss and we'll look into adding those binaries as well.


Post a message to zylin-discuss

Note that building GCC toolchains can be a messy business and is not for the faint of heart. If you manage to get your hands on a GCC binary that works for you, take a backup copy of it and guard it with your life.

Source code

The source used are unmodified official releases of gcc, gdb and newlib and we recommend that you go to the official web sites to get the latest source if you need the source.

  • gcc 4.3.2
  • gdb 6.8
  • binutils 2.18
  • newlib 1.16.0

Known problems

  1. The Windows hosted arm-elf toolchain crossbuilt from Linux Debian has a problem with binutils 2.18, it will fail with arm-elf-ar in certain cases. If you run into this, try the MinGW hosted toolchain instead.
  2. Multlib and Cortex has some hickups w.r.t. floating point format, which requires floating point format to be specified on the command line.

    /* Test app to check that multilib works */
    int main(int argc, char **argv)

    Invoke: arm-elf-gcc -mfpu=vfp -mcpu=cortex-m3 -mthumb test.c

    And you get:

    /tmp/cccL5n1B.o uses FPA instructions, whereas a.out does not

    The solution is to add -mfpu=vfp to the command line:

    arm-elf-gcc -mfpu=vfp -mcpu=cortex-m3 -mthumb test.c

    Here is what I believe is going on:

    There are two different types of floating point VFP and FPA. The key point is that they are not compatible. Does -march=armv7 imply VFP, whereas mcpu=cortex-m3 does not?

    Binutils produces an error message that is misleading. The real problem is that the types of floating point are being mixed.

    I have not checked if this is the intentional behaviour of GCC/binutils.

GCC build options

The binaries contain the authortative source of what build options that were used, but here is a quick repeat of options used. Once the dust settles, scripts will be uploaded as well.

--disable-libssp --target=$TARGET --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --disable-shared --enable-newlib -v --enable-multilib --disable-threads --enable-sjlj-exceptions --enable-libstdcxx-allocator=malloc --prefix=$GCCBUILD/install --disable-libssp

Test results

Please post test results to zylin-discuss and I'll post a summary of the results here.

About 7zip

7zip is an excellent GUI and command line decompression tool that implements support for just about any compression format you care to mention. The tar bz2 is not used for Windows because there is some trouble with symbolic links and also because the 7zip compression format yields excellent compression ratio(70% improvement over .zip in the case of arm-elf.7z!).

MD5 checksums

MD5 checksums for the above. There are actually a few more files available than the one listed in the table should anyone be interested in those combinations feel free to download them.

dcc0954331066b18fa4c4f98f79b7e99 ./mingw/mips-elf.tar.bz2
8eeb0f4a3101bbb50484c27c5af43825 ./mingw/arm-elf.tar.bz2
244c15e8ec6d77bec7b8ed520eed5b19 ./mingw/noxml-arm-elf.tar.bz2
6aeb316c1dadee0bf13ff069ef5c50c9 ./linux/powerpc-elf.tar.bz2
441e8ea6121af29b21be71244e4b24bd ./linux/arm-elf.tar.bz2
e537cc909980a4ca78f4a423ab7eae3e ./linux/mips-elf.tar.bz2
4f9fde8aabee5397d32d54ff2bba092d ./linux/powerpc-eabi.tar.bz2
7d6ba59191cfbbf676024836bdfacb11 ./linux/nocortex-arm-elf.tar.bz2
7e49748956e5548a76651e47eb08e0f0 ./linux/cortex-arm-elf.tar.bz2
547bd82188a6823b6323b7302759765a ./linux/noxml-arm-elf.tar.bz2
2ebc1849ea79903615f1ad65cd4e937d ./mac/mips-elf.tar.bz2
ef050bd7fd4351a029436ed7277842eb ./mac/arm-elf.tar.bz2
e2fd654f12c952d06004b8734fa1c28c ./mac/powerpc-eabi.tar.bz2
5a566626dfd3de64a1599a3460235fde ./cygwin/arm-elf.tar.bz2
3b4cd49e88af55aa292836c0812cf472 ./cygwin/mips-elf.tar.bz2
6f145ae7d57f662b5c3d1503d79a1f48 ./cygwin/base-arm-elf.tar.bz2
0c2e01f17f0842071a317d95cbd581c5 ./cygwin/powerpc-eabi.tar.bz2
0de7077097f336b803b61c5ecf8ad848 ./cygwin/powerpc-elf.tar.bz2
f979df56249670b493619be2163e49a0 ./cygwin/noxml-arm-elf.tar.bz2
a05c0865fde468462b827eb6546747d6 ./windows/arm-elf.tar.bz2
81372e2829a9d8b379780255ccdb5301 ./windows/mips-elf.tar.bz2
5aed2241c74f4fd2d29fa731f3b81c6f ./windows/powerpc-eabi.tar.bz2
7d5cb5d14c0430f9b4303621d29e2436 ./windows/
9b903e3c666c644c5a71591f28ca45c8 ./windows/arm-elf.7z
f57a88da82a3c19143b561344faa8e35 ./windows/mips-elf.7z
02ea456b4ac078fd03733ae3912878c3 ./windows/powerpc-eabi.7z
97a17a2b8410b4d6d178cbddcb3d61b2 ./macpowerpc/mips-elf.tar.bz2
f678590fd9b77087d2164de1fc356598 ./macpowerpc/powerpc-eabi.tar.bz2
543360daf25ec28be1c83928a454ab77 ./macpowerpc/arm-elf.tar.bz2

ZY1000 JTAG Debugger
ARM7/9/11, XScale, Cortex-M3
Fast. No drivers!

Compatible with Code Confidence