diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 63213671f..c85d6f5fa 100644 --- a/configure.ac +++ b/configure.ac @@ -1049,6 +1049,70 @@ AST_GCC_ATTRIBUTE(may_alias) AST_GCC_ATTRIBUTE(constructor) AST_GCC_ATTRIBUTE(destructor) +AC_MSG_CHECKING(for -fsanitize=address support) +saved_sanitize_CFLAGS="${CFLAGS}" +saved_sanitize_LDFLAGS="${LDFLAGS}" +CFLAGS="-fsanitize=address -fno-omit-frame-pointer" +LDFLAGS="-fsanitize=address" +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([], [int x = 1;])], + AC_MSG_RESULT(yes) + [AST_ADDRESS_SANITIZER=1], + [AST_ADDRESS_SANITIZER=] + AC_MSG_RESULT(no) +) +CFLAGS="${saved_sanitize_CFLAGS}" +LDFLAGS="${saved_sanitize_LDFLAGS}" +AC_SUBST(AST_ADDRESS_SANITIZER) + +AC_MSG_CHECKING(for -fsanitize=thread support) +saved_sanitize_CFLAGS="${CFLAGS}" +saved_sanitize_LDFLAGS="${LDFLAGS}" +CFLAGS="-fno-omit-frame-pointer -pie -fPIE -fsanitize=thread" +LDFLAGS="-fsanitize=thread -pie -fPIE" +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([], [int x = 1;])], + AC_MSG_RESULT(yes) + [AST_THREAD_SANITIZER=1], + [AST_THREAD_SANITIZER=] + AC_MSG_RESULT(no) +) +CFLAGS="${saved_sanitize_CFLAGS}" +LDFLAGS="${saved_sanitize_LDFLAGS}" +AC_SUBST(AST_THREAD_SANITIZER) + +AC_MSG_CHECKING(for -fsanitize=leak support) +saved_sanitize_CFLAGS="${CFLAGS}" +saved_sanitize_LDFLAGS="${LDFLAGS}" +CFLAGS="-fno-omit-frame-pointer -fsanitize=leak" +LDFLAGS="-fsanitize=leak" +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([], [int x = 1;])], + AC_MSG_RESULT(yes) + [AST_LEAK_SANITIZER=1], + [AST_LEAK_SANITIZER=] + AC_MSG_RESULT(no) +) +CFLAGS="${saved_sanitize_CFLAGS}" +LDFLAGS="${saved_sanitize_LDFLAGS}" +AC_SUBST(AST_LEAK_SANITIZER) + +AC_MSG_CHECKING(for -fsanitize=undefined support) +saved_sanitize_CFLAGS="${CFLAGS}" +saved_sanitize_LDFLAGS="${LDFLAGS}" +CFLAGS="-fno-omit-frame-pointer -fsanitize=undefined" +LDFLAGS="-fsanitize=undefined" +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([], [int x = 1;])], + AC_MSG_RESULT(yes) + [AST_UNDEFINED_SANITIZER=1], + [AST_UNDEFINED_SANITIZER=] + AC_MSG_RESULT(no) +) +CFLAGS="${saved_sanitize_CFLAGS}" +LDFLAGS="${saved_sanitize_LDFLAGS}" +AC_SUBST(AST_UNDEFINED_SANITIZER) + AC_MSG_CHECKING(for -ffunction-sections support) saved_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} -ffunction-sections" |