Преглед изворни кода

toolchain: fix the C++ exception workaround for new toolchains that don't have such hook

Anton Maklakov пре 5 година
родитељ
комит
f63bbc169e
1 измењених фајлова са 6 додато и 1 уклоњено
  1. 6 1
      components/esp_system/startup.c

+ 6 - 1
components/esp_system/startup.c

@@ -108,9 +108,14 @@ sys_startup_fn_t g_startup_fn[1] = { start_cpu0 };
 
 #ifdef CONFIG_COMPILER_CXX_EXCEPTIONS
 // workaround for C++ exception crashes
-void _Unwind_SetNoFunctionContextInstall(unsigned char enable);
+void _Unwind_SetNoFunctionContextInstall(unsigned char enable) __attribute__((weak, alias("_Unwind_SetNoFunctionContextInstall_Default")));
 // workaround for C++ exception large memory allocation
 void _Unwind_SetEnableExceptionFdeSorting(unsigned char enable);
+
+static IRAM_ATTR void _Unwind_SetNoFunctionContextInstall_Default(unsigned char enable __attribute__((unused)))
+{
+    (void)0;
+}
 #endif // CONFIG_COMPILER_CXX_EXCEPTIONS
 
 static const char* TAG = "cpu_start";