summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-04-06 21:29:43 +0200
committerLuboš Luňák <l.lunak@suse.cz>2012-04-06 21:29:43 +0200
commitcdd0e1810d4019d827563b436c1b3b8d1cf5b579 (patch)
tree8c82749d43848caaba4fc987d4007535819ae06b /solenv
parent837aa67861275dd56831cbba03a989b5ad71db4b (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.mk2
-rw-r--r--solenv/gbuild/platform/com_GCC_defs.mk2
-rw-r--r--solenv/inc/unxgcc.mk2
-rw-r--r--solenv/inc/unxiosr.mk2
-rw-r--r--solenv/inc/unxmacx.mk2
-rw-r--r--solenv/inc/wntgcci.mk5
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=