summaryrefslogtreecommitdiffstats
path: root/mkspecs/common
diff options
context:
space:
mode:
authorPeter Kümmel <syntheticpp@gmx.net>2014-09-30 09:50:22 +0200
committerPeter Kümmel <syntheticpp@gmx.net>2014-10-02 19:45:00 +0200
commitd5576b1cb8422e38716c99aab34622b5dc23437c (patch)
treea92b5fb65db9a3cb6c2d233d01ef078ca0e48d2b /mkspecs/common
parent7dd394a16c51d11cd3ce91e288253ad137190994 (diff)
Add support for gcc/clang's sanitize features
GCC and Clang support compiler intrinsic error detections tools: address, memory, thread, undefined Let users conveniently enable it in qmake, for instance with CONFIG += sanitizer sanitize_address Also add a -sanitize [...] option to configure to use it by default for both the Qt libraries, and user applications. [ChangeLog][configure] Added support for GCC/Clang -fsanitize= options Change-Id: Ie5418abcdf41842566df510d7707e41739e66f87 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Diffstat (limited to 'mkspecs/common')
-rw-r--r--mkspecs/common/gcc-base.conf2
-rw-r--r--mkspecs/common/sanitize.conf23
2 files changed, 25 insertions, 0 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index a149f4d907..8310db52cc 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -80,3 +80,5 @@ QMAKE_CFLAGS_SSE4_2 += -msse4.2
QMAKE_CFLAGS_AVX += -mavx
QMAKE_CFLAGS_AVX2 += -mavx2
QMAKE_CFLAGS_NEON += -mfpu=neon
+
+include(sanitize.conf)
diff --git a/mkspecs/common/sanitize.conf b/mkspecs/common/sanitize.conf
new file mode 100644
index 0000000000..5e09406cfb
--- /dev/null
+++ b/mkspecs/common/sanitize.conf
@@ -0,0 +1,23 @@
+#
+# Qmake configuration for the GCC / Clang sanitize features
+#
+
+QMAKE_COMMON_SANITIZE_CFLAGS = -fno-omit-frame-pointer
+QMAKE_COMMON_SANITIZE_CXXFLAGS = -fno-omit-frame-pointer
+
+QMAKE_SANITIZE_ADDRESS_CFLAGS = -fsanitize=address
+QMAKE_SANITIZE_ADDRESS_CXXFLAGS = -fsanitize=address
+QMAKE_SANITIZE_ADDRESS_LFLAGS = -fsanitize=address
+
+QMAKE_SANITIZE_THREAD_CFLAGS = -fsanitize=thread
+QMAKE_SANITIZE_THREAD_CXXFLAGS = -fsanitize=thread
+QMAKE_SANITIZE_THREAD_LFLAGS = -fsanitize=thread
+
+QMAKE_SANITIZE_MEMORY_CFLAGS = -fsanitize=memory
+QMAKE_SANITIZE_MEMORY_CXXFLAGS = -fsanitize=memory
+QMAKE_SANITIZE_MEMORY_LFLAGS = -fsanitize=memory
+
+QMAKE_SANITIZE_UNDEFINED_CFLAGS = -fsanitize=undefined
+QMAKE_SANITIZE_UNDEFINED_CXXFLAGS = -fsanitize=undefined
+QMAKE_SANITIZE_UNDEFINED_LFLAGS = -fsanitize=undefined
+