diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/gcc-base.conf | 2 | ||||
-rw-r--r-- | mkspecs/common/sanitize.conf | 23 | ||||
-rw-r--r-- | mkspecs/features/sanitizer.prf | 30 |
3 files changed, 55 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 + diff --git a/mkspecs/features/sanitizer.prf b/mkspecs/features/sanitizer.prf new file mode 100644 index 0000000000..9e7ff0218a --- /dev/null +++ b/mkspecs/features/sanitizer.prf @@ -0,0 +1,30 @@ +# Sanitizer flags + + +sanitize_address { + QMAKE_CFLAGS += $$QMAKE_SANITIZE_ADDRESS_CFLAGS + QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_ADDRESS_CXXFLAGS + QMAKE_LFLAGS += $$QMAKE_SANITIZE_ADDRESS_LFLAGS +} + +sanitize_memory { + QMAKE_CFLAGS += $$QMAKE_SANITIZE_MEMORY_CFLAGS + QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_MEMORY_CXXFLAGS + QMAKE_LFLAGS += $$QMAKE_SANITIZE_MEMORY_LFLAGS +} + +sanitize_thread { + QMAKE_CFLAGS += $$QMAKE_SANITIZE_THREAD_CFLAGS + QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_THREAD_CXXFLAGS + QMAKE_LFLAGS += $$QMAKE_SANITIZE_THREAD_LFLAGS +} + +sanitize_undefined { + QMAKE_CFLAGS += $$QMAKE_SANITIZE_UNDEFINED_CFLAGS + QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_UNDEFINED_CXXFLAGS + QMAKE_LFLAGS += $$QMAKE_SANITIZE_UNDEFINED_LFLAGS +} + +QMAKE_CFLAGS += $$QMAKE_COMMON_SANITIZE_CFLAGS +QMAKE_CXXFLAGS += $$QMAKE_COMMON_SANITIZE_CXXFLAGS + |