О, на вас вся надежда!
Повторюсь немного:
1. Собрал binutils. Вроде как без проблем.
2. Собираю gcc. Eсли в t-arm-elf раскомментировать строки (я правда не знаю еще, необходимо ли это, но так как работать будет нужно сэтой архитектурой, решил что нужно)
MULTILIB_OPTIONS += march=armv7
MULTILIB_DIRNAMES += thumb2
MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
то newlib потом отказываются собираться с ошибкой:
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S: Assembler messages:
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:123: Error: SP not allowed in register list -- `stmea a1!,{v1-v7,fp,ip,sp,lr}'
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:145: Error: SP not allowed in register list -- `ldmfd a1!,{v1-v7,fp,ip,sp,lr}'
make[9]: *** [lib_a-setjmp.o] Ошибка 1
make[9]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine/arm'
make[8]: *** [all-recursive] Ошибка 1
make[8]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine'
make[7]: *** [all-recursive] Ошибка 1
make[7]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc'
make[6]: *** [all-recursive] Ошибка 1
make[6]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[5]: *** [all] Ошибка 2
make[5]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[4]: *** [multi-do] Ошибка 1
make[4]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[3]: *** [all-multi] Ошибка 2
make[3]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[1]: *** [all-target-newlib] Ошибка 2
make[1]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0'
make: *** [all] Ошибка 2
если те строки оставить закомментаренными, собираются нормально

. Косяк я так понимаю в libc, создаваемой при сборке gcc-4.3.1, но как с этим боротся - нихт ферштеен
Все исходники с патчами брал из репозитария Дебиан.
Может, подробнее расписать, с какими опциями собирал?