From 2b21dd69d6a4e47f0ec3d3958ab1def0983ce76c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 9 May 2012 18:52:44 +0200 Subject: turn off exceptions by default where they aren't required This significantly reduces the size of the generated code in places where we don't need exceptions. The -(no-)exceptions configure flag has been removed in the process, as there is now a fine grained way to control this on a per module level, and Qt is being compiled without exceptions in most places. Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32 Reviewed-by: Thiago Macieira --- mkspecs/common/gcc-base.conf | 4 +++- mkspecs/features/default_pre.prf | 2 +- mkspecs/features/exceptions.prf | 6 ++++++ mkspecs/features/exceptions_off.prf | 5 +++++ mkspecs/features/qt_module.prf | 3 +++ mkspecs/features/win32/exceptions.prf | 5 ----- mkspecs/features/win32/exceptions_off.prf | 5 ----- mkspecs/irix-cc-64/qmake.conf | 3 +++ mkspecs/irix-cc/qmake.conf | 3 +++ 9 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 mkspecs/features/exceptions.prf create mode 100644 mkspecs/features/exceptions_off.prf delete mode 100644 mkspecs/features/win32/exceptions.prf delete mode 100644 mkspecs/features/win32/exceptions_off.prf (limited to 'mkspecs') diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 4a8419aa78..a944dd71a3 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -43,6 +43,7 @@ QMAKE_CFLAGS_STATIC_LIB += -fPIC QMAKE_CFLAGS_APP += -fPIE QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden +QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions QMAKE_CXXFLAGS += $$QMAKE_CFLAGS QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS @@ -55,9 +56,10 @@ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden +QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF QMAKE_LFLAGS += QMAKE_LFLAGS_DEBUG += QMAKE_LFLAGS_APP += QMAKE_LFLAGS_RELEASE += - +QMAKE_LFLAGS_EXCEPTIONS_OFF += diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index f4292c3312..2876e7d29e 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -1,6 +1,6 @@ load(exclusive_builds) ### Qt 5: remove "uic" and "resources" - or add "qt" -CONFIG = lex yacc warn_on debug uic resources $$CONFIG +CONFIG = lex yacc warn_on debug uic resources exceptions $$CONFIG !build_pass:exists($$_PRO_FILE_PWD_/sync.profile) { PRO_BASENAME = $$basename(_PRO_FILE_) diff --git a/mkspecs/features/exceptions.prf b/mkspecs/features/exceptions.prf new file mode 100644 index 0000000000..ebfd5837cf --- /dev/null +++ b/mkspecs/features/exceptions.prf @@ -0,0 +1,6 @@ +CONFIG -= exceptions_off +QMAKE_CFLAGS *= $$QMAKE_CFLAGS_EXCEPTIONS_ON +QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_EXCEPTIONS_ON +QMAKE_LFLAGS *= $$QMAKE_LFLAGS_EXCEPTIONS_ON +DEFINES -= QT_NO_EXCEPTIONS + diff --git a/mkspecs/features/exceptions_off.prf b/mkspecs/features/exceptions_off.prf new file mode 100644 index 0000000000..9c8a4043ea --- /dev/null +++ b/mkspecs/features/exceptions_off.prf @@ -0,0 +1,5 @@ +CONFIG -= exceptions +QMAKE_CFLAGS += $$QMAKE_CFLAGS_EXCEPTIONS_OFF +QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_EXCEPTIONS_OFF +QMAKE_LFLAGS += $$QMAKE_LFLAGS_EXCEPTIONS_OFF +DEFINES += QT_NO_EXCEPTIONS diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index b71ef61252..865e3e51e5 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -28,3 +28,6 @@ mac { CONFIG += absolute_library_soname } } + +# Qt modules get compiled without exceptions enabled by default +CONFIG += exceptions_off diff --git a/mkspecs/features/win32/exceptions.prf b/mkspecs/features/win32/exceptions.prf deleted file mode 100644 index 786665920f..0000000000 --- a/mkspecs/features/win32/exceptions.prf +++ /dev/null @@ -1,5 +0,0 @@ -CONFIG -= exceptions_off -QMAKE_CFLAGS *= $$QMAKE_CFLAGS_EXCEPTIONS_ON -QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_EXCEPTIONS_ON -QMAKE_LFLAGS *= $$QMAKE_LFLAGS_EXCEPTIONS_ON - diff --git a/mkspecs/features/win32/exceptions_off.prf b/mkspecs/features/win32/exceptions_off.prf deleted file mode 100644 index 9de53d3417..0000000000 --- a/mkspecs/features/win32/exceptions_off.prf +++ /dev/null @@ -1,5 +0,0 @@ -CONFIG -= exceptions -QMAKE_CFLAGS += $$QMAKE_CFLAGS_EXCEPTIONS_OFF -QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_EXCEPTIONS_OFF -QMAKE_LFLAGS += $$QMAKE_LFLAGS_EXCEPTIONS_OFF - diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf index ac5f3b5847..08fd50dc54 100644 --- a/mkspecs/irix-cc-64/qmake.conf +++ b/mkspecs/irix-cc-64/qmake.conf @@ -56,6 +56,7 @@ QMAKE_CFLAGS_SHLIB = QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -woff 1110,1174,3262 QMAKE_CFLAGS_THREAD = +QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off QMAKE_CXX = CC QMAKE_CXXFLAGS = -64 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303 @@ -68,6 +69,7 @@ QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = +QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF QMAKE_INCDIR = QMAKE_LIBDIR = @@ -89,6 +91,7 @@ QMAKE_LFLAGS_SONAME = -Wl,-soname, QMAKE_LFLAGS_THREAD = QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved QMAKE_LFLAGS_RPATH = -Wl,-rpath, +QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf index eaec795f2a..26b3f7c14c 100644 --- a/mkspecs/irix-cc/qmake.conf +++ b/mkspecs/irix-cc/qmake.conf @@ -56,6 +56,7 @@ QMAKE_CFLAGS_SHLIB = QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -woff 1110,1174,3262 QMAKE_CFLAGS_THREAD = +QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off QMAKE_CXX = CC QMAKE_CXXFLAGS = -n32 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303 @@ -68,6 +69,7 @@ QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = +QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF QMAKE_INCDIR = QMAKE_LIBDIR = @@ -89,6 +91,7 @@ QMAKE_LFLAGS_SONAME = -Wl,-soname, QMAKE_LFLAGS_THREAD = QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved QMAKE_LFLAGS_RPATH = -Wl,-rpath, +QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = -- cgit v1.2.3