Модифицирую romboot-evm9200.

Не собирается toolchain-ми с gcc 4.2.1, c gcc 3.4.6 все ОК

Проблема с искажением имен


main.cpp->main.o (для 4.2.1)
------------------------------------

_Z21AT91F_AIC_ConfigureItP10_AT91S_AICjjjPFvvE __gxx_personality_sj0 _Z12GetTickCountv StTick _Z19AT91_XmodemCompletejPv svcXmodem XmodemComplete _Z14XmodemProtocoljPv xmodemPipe AT91F_ST_Handler ctlTempo _Z10AsciiToHexPcPj _Z12AT91F_SetPLLv _Z16AT91F_StartUbootjPv _Z6printfPKcz _Z14read_dataflashmmPc Jump __udivsi3 _Z19AT91F_MemoryDisplayjjj putchar _Z17AT91F_DisplayMenuv _Z24AT91F_DataflashPrintInfov menu_separ menu_dataflash main _Z5fopenPFiiEPFivE _Z4getcv _Z14AT91F_ReadLinePKcPc _Z15write_dataflashmjj puts _Z20AT91F_WaitKeyPressedv _Z14at91_dbgu_getcv stdin _Z14at91_dbgu_putci pAT91 stdout sXmBuffer AT91F_ST_ASM_Handler dataflash_info message svcTempo


stdio.cpp -> stdio.o (для 4.2.1)
-------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------ CUT --------------------------------------------------------------------------------------------------------------
_ZZ5fopenPFiiEPFivEE4init _Z5fopenPFiiEPFivE __filedesc __gxx_personality_sj0 _Z6fcloseP4FILE _Z5fputsPKcP4FILE _Z5fputciP4FILE _Z5fgetcP4FILE _Z4putsPKc stdout _Z4putci _Z7putchari _Z4getcv stdin _Z6strlenPKc __udivsi3 __umodsi3 _Z6numberP4FILEiiiii _Z8vfprintfP4FILEPKcPv _Z6printfPKcz _Z7fprintfP4FILEPKcz


main.cpp->main.o (для 3.6.4)
-------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------ CUT --------------------------------------------------------------------------------------------------------------
svcXmodem sXmBuffer pAT91 StTick XmodemComplete message menu_dataflash menu_separ _Z12GetTickCountv _Z19AT91_XmodemCompletejPv _Z14XmodemProtocoljPv AT91F_ST_Handler _Z17AT91F_DisplayMenuv printf _Z24AT91F_DataflashPrintInfov _Z10AsciiToHexPcPj __udivsi3 _Z19AT91F_MemoryDisplayjjj _Z14read_dataflashmmPc putchar _Z12AT91F_SetPLLv _Z16AT91F_StartUbootjPv Jump main _Z5fopenPFiiEPFivE _Z4getcv _Z14AT91F_ReadLinePKcPc _Z15write_dataflashmjj puts _Z20AT91F_WaitKeyPressedv _Z14at91_dbgu_getcv stdin _Z14at91_dbgu_putci stdout AT91F_ST_ASM_Handler dataflash_info



stdio.cpp -> stdio.o (для 3.6.4)
-------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------ CUT --------------------------------------------------------------------------------------------------------------

_ZZ5fopenPFiiEPFivEE4init $a __filedesc stdin stdout _Z5fopenPFiiEPFivE _Z6fcloseP4FILE _Z5fputsPKcP4FILE _Z5fputciP4FILE _Z5fgetcP4FILE puts _Z4putci putchar _Z4getcv _Z6strlenPKc __umodsi3 __udivsi3 _Z6numberP4FILEiiiii _Z8vfprintfP4FILEPKcPv _Z7fprintfP4FILEPKcz printf



Т.о. при сборка с gcc 4.2.1 имеются проблемы с именеми следующих функций

puts : puts in main.o VS _Z4putsPKc
putchar : putchar in main.o VS _Z7putchari

Лечится комментированием в stdio.h их прототипов искажение к ним не применеятся и имена совпадают с теми что в main.o. Соответсвенно где вызываю надо определить extern "C" func_proto либо подключить еще один хедер, что, естественно меня не устраимает.

Сталкивался ли кто с такой шляпой ?
Глюки 4.2.1 ? или можно вылечить опциями