Jump to content
    

Переопределение stdio и name mangling: проблема с toolchain-ами

Модифицирую 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 ? или можно вылечить опциями

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...