Наконец добился нормальной сборки через GCC 4.3.2 и работоспособности на реальном железе (STM32F10x). Это пример 4-BlinkLeds построенный на базе 1-EvenFlag.
Собирал с помощью codesourcery-вского тулчейна arm-none-eabi (http://www.codesourcery.com/gnu_toolchains/arm/portal/release642).
Следует иметь в виду следующий момент (который мне много крови попортил). Если у вас тулчейн собранный для arm-elf то инициализация глобальных объектов происходит через таблицу в секции .ctors. А вот arm-none-eabi использует для этого секцию .init_array (См. файл 4-BlinkLeds/Lib/STM32_SEC_FLASH.ld)
Да, и кортексы умеет только 4.3.x... GCC 4.2.x про существование кортексов и Thumb-2 ничего не знает.
Все мои терзания здесь:
http://mercurial.intuxication.org/hg/scmrtos-cm3-gccP.S. по оригинальному коду для IAR никаких замечаний нет =)))