From cded27b58ed6a196dd632744158c2ff89d067b6b Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Fri, 23 Jan 2015 10:37:07 +0800 Subject: [PATCH] Update crt_init.c --- components/cplusplus/crt_init.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/components/cplusplus/crt_init.c b/components/cplusplus/crt_init.c index e345052edd..958177c1f2 100644 --- a/components/cplusplus/crt_init.c +++ b/components/cplusplus/crt_init.c @@ -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; -- GitLab