Update crt_init.c
This commit is contained in:
parent
0e18dfede7
commit
cded27b58e
|
@ -51,14 +51,14 @@ int cplusplus_system_init(void)
|
|||
(*ctors_func)();
|
||||
}
|
||||
#elif defined(__CC_ARM)
|
||||
# if 1
|
||||
/* If there is no SHT$$INIT_ARRAY, calling
|
||||
* $Super$$__cpp_initialize__aeabi_() will fault. At least until Keil5.12
|
||||
* the problem still exists. So we have to initialize the C++ runtime our
|
||||
* own. */
|
||||
* $Super$$__cpp_initialize__aeabi_() will cause fault. At least until Keil5.12
|
||||
* the problem still exists. So we have to initialize the C++ runtime by ourself.
|
||||
*/
|
||||
typedef void PROC();
|
||||
extern const unsigned long SHT$$INIT_ARRAY$$Base[];
|
||||
extern const unsigned long SHT$$INIT_ARRAY$$Limit[];
|
||||
|
||||
const unsigned long *base = SHT$$INIT_ARRAY$$Base;
|
||||
const unsigned long *lim = SHT$$INIT_ARRAY$$Limit;
|
||||
|
||||
|
@ -67,10 +67,6 @@ int cplusplus_system_init(void)
|
|||
PROC *proc = (PROC*)((const char*)base + *base);
|
||||
(*proc)();
|
||||
}
|
||||
# else
|
||||
/* call armcc lib to initialize cplusplus */
|
||||
$Super$$__cpp_initialize__aeabi_();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue