Возьмем последний binutils-2.24:
./configure --target=arm-none-eabi -enable-interwork --enable-multilib --disable-nls --disable-libssp --prefix=/opt/arm-none-eabi make make install-strip export PATH=$PATH:/opt/arm-none-eabi/bin
Возьмем newlib-2.0.0 и распакуем его, пусть проветривается.
Возьмем gcc-4.8.2 который слышал о cortex-m0plus. Возьмем дебиановские патчи отсюда. Наложим их и скомпилируем:
mkdir build ../configure --target=arm-none-eabi --prefix=/opt/arm-none-eabi --enable-languages="c,c++" --enable-interwork --enable-multilib --with- newlib --with-headers=/path/to/src/newlib-2.0.0/newlib/libc/include/ --disable-nls --disable-libssp --with-system-zlib --with-multilib-lis t=armv6-m # в этом месте ./configure может ругаться, надо проследить чтобы он заголовки смог переписать на место make make all-gcc make install-gcc
newlib собирается со следующими ключами (без --disable-newlib-supplied-syscalls не собираются некоторые куски для armv6-m, и atmel-овский asf ругается на дублирующиеся определения функций из syscalls):
./configure --target=arm-none-eabi -enable-interwork --enable-multilib --disable-libssp --disable-nls --prefix=/opt/arm-none-eabi --disable-newlib-supplied-syscalls --enable-newlib-register-fini --enable-newlib-io-long-long make make install
После доделываем gcc:
cd build make all make install