pussuw commented on code in PR #6235: URL: https://github.com/apache/incubator-nuttx/pull/6235#discussion_r870449898
########## 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)(); + } + } + +/**************************************************************************** + * Name: exec_dtors + * + * Description: + * Call static destructors + * + ****************************************************************************/ + + static void exec_dtors(void) Review Comment: I did, and that is a dead end. They run the code in kernel space with kernel privileges, ctors and dtors are user code, so they must be in the user CRT, just like the exit functions. crt0 is used by CONFIG_BUILD_KERNEL, BUILD_FLAT / BUILD_PROTECTED don't need this file. -- 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