pussuw commented on code in PR #6235: URL: https://github.com/apache/incubator-nuttx/pull/6235#discussion_r871864768
########## arch/risc-v/src/common/crt0.c: ########## @@ -88,6 +88,71 @@ static void sig_trampoline(void) ); } +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#if defined(__cplusplus) +extern "C" +{ +#endif + +/* Linker defined symbols to .ctors and .dtors */ + + extern void (*_sctors)(void); + extern void (*_ectors)(void); + extern void (*_sdtors)(void); + extern void (*_edtors)(void); + +#if defined(__cplusplus) +} +#endif + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +#if defined(__cplusplus) +extern "C" +{ +#endif + +/**************************************************************************** + * Name: exec_ctors + * + * Description: + * Call static constructors + * + ****************************************************************************/ + + static void exec_ctors(void) + { + for (void (**ctor)(void) = &_sctors; ctor != &_ectors; ctor++) + { + (*ctor)(); + } + } Review Comment: Yes it complains. I guess we don't need to avoid the name mangling, the end result for C++ should still work as these are never called across C/C++ and since they are local functions called locally the linker must keep them. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org