build system: use -fsanitize=undefined if UBSAN is set

This commit is contained in:
Moritz Bunkus 2015-09-16 10:01:37 +02:00
parent 508b938942
commit 8c5d97b69d

View File

@ -103,6 +103,7 @@ def setup_globals
cflags_common += " #{c(:OPTIMIZATION_CFLAGS)} -D_FILE_OFFSET_BITS=64"
cflags_common += " -DMTX_LOCALE_DIR=\\\"#{c(:localedir)}\\\" -DMTX_PKG_DATA_DIR=\\\"#{c(:pkgdatadir)}\\\" -DMTX_DOC_DIR=\\\"#{c(:docdir)}\\\""
cflags_common += " #{c(:FSTACK_PROTECTOR)}"
cflags_common += " -fsanitize=undefined" if c?(:UBSAN)
cflags_common += " -Ilib/libebml -Ilib/libmatroska" if c?(:EBML_MATROSKA_INTERNAL)
cflags_common += " #{c(:MATROSKA_CFLAGS)} #{c(:EBML_CFLAGS)} #{c(:EXTRA_CFLAGS)} #{c(:DEBUG_CFLAGS)} #{c(:PROFILING_CFLAGS)} #{c(:USER_CPPFLAGS)}"
cflags_common += " -mno-ms-bitfields -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 " if c?(:MINGW)
@ -120,6 +121,7 @@ def setup_globals
ldflags += " -Llib/libebml/src -Llib/libmatroska/src" if c?(:EBML_MATROSKA_INTERNAL)
ldflags += " #{c(:EXTRA_LDFLAGS)} #{c(:PROFILING_LIBS)} #{c(:USER_LDFLAGS)} #{c(:LDFLAGS_RPATHS)} #{c(:BOOST_LDFLAGS)}"
ldflags += " -Wl,--dynamicbase,--nxcompat" if c?(:MINGW)
ldflags += " -fsanitize=undefined" if c?(:UBSAN)
ldflags += " #{c(:FSTACK_PROTECTOR)}"
windres = ""