diff options
-rw-r--r-- | mk/vars.mk | 9 | ||||
-rw-r--r-- | target/config/Config.in.toolchain | 7 |
2 files changed, 14 insertions, 2 deletions
diff --git a/mk/vars.mk b/mk/vars.mk index 2fabd7160..eaa8c5333 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -283,14 +283,19 @@ else TARGET_CPPFLAGS+= -DNDEBUG TARGET_CFLAGS+= -fomit-frame-pointer TARGET_CXXFLAGS+= -fomit-frame-pointer -# stop generating eh_frame stuff +endif + +# stop generating eh_frame stuff, do not use it for C++ +ifeq ($(ADK_TARGET_CFLAGS_DISABLE_EH),y) TARGET_CFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables TARGET_CXXFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables +endif + +# workaround gcc bug for m68k/coldfire ifeq ($(ADK_TARGET_CPU_CF),y) TARGET_CFLAGS+= -fno-dwarf2-cfi-asm TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm endif -endif ifeq ($(ADK_TARGET_ARCH_ARM),y) ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y) diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain index 499e67011..0845490a1 100644 --- a/target/config/Config.in.toolchain +++ b/target/config/Config.in.toolchain @@ -32,6 +32,13 @@ config ADK_TARGET_CFLAGS_OPT_O0 endchoice +config ADK_TARGET_CFLAGS_DISABLE_EH + bool "Disable exception handling and unwindung via compiler flags" + depends on !ADK_DEBUG + help + Do not use this optimization flags if you are planning to use C++ + applications, which are often using exception handling. + menu "Compiler language support" config ADK_TOOLCHAIN_WITH_CXX bool "enable C++" |