GCC & GDB binaries
GCC and GDB binary toolchain for embedded development. Free and at your own peril!
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:
http://www.7-zip.org/.
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.
Questions/feedback?
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
- 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.
- 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/arm-elf.zip
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