diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2018-06-14 05:59:39 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2018-06-14 05:59:39 +0200 |
commit | c0c6ccec7881c92e0a96fa9114af553c4434d83b (patch) | |
tree | 40151ac0761d2b19998768c915904a034cc64a39 | |
parent | 71c4b08ed6e9f52c4078d27574ed8440fd945ac1 (diff) |
add option for special CFLAGS/CXXFLAGS
Do not disable exception handling and unwinding options by default, as this
breaks exception handling in C++ applications using libstdc++.
Reported-by: Tom Deblauwe
-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++" |