diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2012-04-06 21:29:43 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-04-06 21:29:43 +0200 |
commit | cdd0e1810d4019d827563b436c1b3b8d1cf5b579 (patch) | |
tree | 8c82749d43848caaba4fc987d4007535819ae06b /solenv | |
parent | 837aa67861275dd56831cbba03a989b5ad71db4b (diff) |
enable -fno-enforce-eh-specs only for non-dbgutil builds
The code uses exception specifications, so it doesn't make much
sense to have them, but disable them using a gcc option. MSVC
ignores them completely, so this would leave only clang as
the only compiler to enforce them. Either the majority compiler
needs to enforce it at least in dbgutil builds (in product builds
the option can be seen as a kind of NDEBUG), or alternatively
the exception specifications should be removed.
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_GCC.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_GCC_defs.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxgcc.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxiosr.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxmacx.mk | 2 | ||||
-rw-r--r-- | solenv/inc/wntgcci.mk | 5 |
6 files changed, 14 insertions, 1 deletions
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index 1ba676f4cc14..08b5351c9b6f 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -93,8 +93,10 @@ ifeq ($(HAVE_CXX0X),TRUE) # FIXME still does not compile fully gb_CXXFLAGS += -std=gnu++0x endif +ifeq ($(gb_PRODUCT),$(true)) gb_LinkTarget_EXCEPTIONFLAGS += \ -fno-enforce-eh-specs \ +endif # At least sal defines its own __main, which would cause DLLs linking against # sal to pick up sal's __main instead of the one from MinGW's dllcrt2.o: diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk index 4018ebc6e50b..c025e706e37c 100644 --- a/solenv/gbuild/platform/com_GCC_defs.mk +++ b/solenv/gbuild/platform/com_GCC_defs.mk @@ -120,11 +120,13 @@ gb_LinkTarget_EXCEPTIONFLAGS := \ -DEXCEPTIONS_ON \ -fexceptions +ifeq ($(gb_PRODUCT),$(true)) # Clang doesn't have this option ifneq ($(COM_GCC_IS_CLANG),TRUE) gb_LinkTarget_EXCEPTIONFLAGS += \ -fno-enforce-eh-specs endif +endif gb_LinkTarget_NOEXCEPTIONFLAGS := \ -DEXCEPTIONS_OFF \ diff --git a/solenv/inc/unxgcc.mk b/solenv/inc/unxgcc.mk index 4f9ebee6c816..151fc8b0e6c5 100644 --- a/solenv/inc/unxgcc.mk +++ b/solenv/inc/unxgcc.mk @@ -83,9 +83,11 @@ CFLAGSENABLESYMBOLS=-g CFLAGSCC= -pipe $(ARCH_FLAGS) # Flags for enabling exception handling CFLAGSEXCEPTIONS=-fexceptions +.IF "$(dbgutil)"=="" .IF "$(COM_GCC_IS_CLANG)" != "TRUE" CFLAGSEXCEPTIONS+=-fno-enforce-eh-specs .ENDIF +.ENDIF # Flags for disabling exception handling CFLAGS_NO_EXCEPTIONS=-fno-exceptions diff --git a/solenv/inc/unxiosr.mk b/solenv/inc/unxiosr.mk index 05bded5b55f2..089dc3d588aa 100644 --- a/solenv/inc/unxiosr.mk +++ b/solenv/inc/unxiosr.mk @@ -53,9 +53,11 @@ OBJCXXFLAGS:=-x objective-c++ $(OBJCFLAGS) # Comp Flags for files that need exceptions enabled (C and C++) CFLAGSEXCEPTIONS=-fexceptions +.IF "$(dbgutil)"=="" .IF "$(COM_GCC_IS_CLANG)" != "TRUE" CFLAGSEXCEPTIONS+=-fno-enforce-eh-specs .ENDIF +.ENDIF # Comp Flags for files that do not need exceptions enabled (C and C++) CFLAGS_NO_EXCEPTIONS=-fno-exceptions diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk index 8f36772f4d06..c829a45a49aa 100644 --- a/solenv/inc/unxmacx.mk +++ b/solenv/inc/unxmacx.mk @@ -107,9 +107,11 @@ OBJCXXFLAGS=-x objective-c++ -fobjc-exceptions # Comp Flags for files that need exceptions enabled (C and C++) CFLAGSEXCEPTIONS=-fexceptions +.IF "$(dbgutil)"=="" .IF "$(COM_GCC_IS_CLANG)" != "TRUE" CFLAGSEXCEPTIONS+=-fno-enforce-eh-specs .ENDIF +.ENDIF # Comp Flags for files that do not need exceptions enabled (C and C++) CFLAGS_NO_EXCEPTIONS=-fno-exceptions diff --git a/solenv/inc/wntgcci.mk b/solenv/inc/wntgcci.mk index bdf46b4d04af..c8e39d1570bb 100644 --- a/solenv/inc/wntgcci.mk +++ b/solenv/inc/wntgcci.mk @@ -51,8 +51,11 @@ CFLAGSCXX=-pipe $(ARCH_FLAGS) # FIXME still does not compile fully CFLAGSCXX+=-std=gnu++0x .ENDIF -CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +CFLAGSEXCEPTIONS=-fexceptions CFLAGS_NO_EXCEPTIONS=-fno-exceptions +.IF "$(dbgutil)"=="" +CFLAGSEXCEPTIONS+= -fno-enforce-eh-specs +.ENDIF PICSWITCH:= CFLAGSOBJGUIST= |