From e1d2fe31350f177580cb98c23418a765028fa4c4 Mon Sep 17 00:00:00 2001 From: krcroft Date: Sun, 12 Apr 2020 09:05:36 -0700 Subject: [PATCH] Make sanitizers platform-agnostic --- scripts/automator/build/clang-darwin_x86_64 | 5 ----- scripts/automator/build/clang-defaults | 21 ++++++++++++-------- scripts/automator/build/clang-linux_x86_64 | 5 ----- scripts/automator/build/gcc-darwin_x86_64 | 7 ------- scripts/automator/build/gcc-defaults | 22 ++++++++++++++------- scripts/automator/build/gcc-linux_x86_64 | 7 ------- 6 files changed, 28 insertions(+), 39 deletions(-) diff --git a/scripts/automator/build/clang-darwin_x86_64 b/scripts/automator/build/clang-darwin_x86_64 index 2f4072a8..0ee1847b 100644 --- a/scripts/automator/build/clang-darwin_x86_64 +++ b/scripts/automator/build/clang-darwin_x86_64 @@ -3,11 +3,6 @@ ld="ld" # OS-and-processor customizations cflags_release+=(-march=nehalem) -# Build additions -TYPES+=(msan usan) -cflags_msan=("${cflags_debug[@]}" -fsanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer) -cflags_usan=("${cflags_debug[@]}" -fsanitize-recover=all -fsanitize=undefined) - # Modifier additions MODIFIERS+=(lto) cflags_lto=(-flto=thin) diff --git a/scripts/automator/build/clang-defaults b/scripts/automator/build/clang-defaults index e36c2753..9f8bd1fc 100644 --- a/scripts/automator/build/clang-defaults +++ b/scripts/automator/build/clang-defaults @@ -8,19 +8,24 @@ if [[ $- == *i* ]]; then fi # Release-type additions -TYPES+=(release debug warnmore pgotrain optinfo) - -# Note: -fno-math-errno allows better optimization of C/C++ math library functions -cflags_release+=("${cflags[@]}" -DNDEBUG -O3 -fno-math-errno -fno-strict-aliasing) +TYPES+=(release debug warnmore pgotrain optinfo msan usan) +# Note: no-math-errno improves optimization of C/C++ math functions +cflags_release+=("${cflags[@]}" -DNDEBUG -O3 -fno-math-errno + -fno-strict-aliasing) cflags_debug+=("${cflags[@]}" -g -fno-omit-frame-pointer) -cflags_pgotrain+=("${cflags_debug[@]}" -fprofile-instr-generate -fcoverage-mapping) -cflags_warnmore+=("${cflags_debug[@]}" -Wextra -Wshadow -Wcast-align -Wunused - -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion - -Wdouble-promotion -Wformat=2) +cflags_pgotrain+=("${cflags_debug[@]}" -fprofile-instr-generate + -fcoverage-mapping) +cflags_warnmore+=("${cflags_debug[@]}" -Wextra -Wshadow -Wcast-align + -Wunused -Woverloaded-virtual -Wpedantic -Wconversion + -Wsign-conversion -Wdouble-promotion -Wformat=2) cxxonly_warnmore+=(-Wnon-virtual-dtor -Woverloaded-virtual) cflags_optinfo+=("${cflags_release[@]}" -Rpass-analysis=loop-vectorize -gline-tables-only -gcolumn-info) +cflags_msan=("${cflags_debug[@]}" -fsanitize-recover=all + -fsanitize=memory -fno-omit-frame-pointer) +cflags_usan=("${cflags_debug[@]}" -fsanitize-recover=all + -fsanitize=undefined) # Modifier additions MODIFIERS=(fdo) diff --git a/scripts/automator/build/clang-linux_x86_64 b/scripts/automator/build/clang-linux_x86_64 index 6a6370e3..a8ad3755 100644 --- a/scripts/automator/build/clang-linux_x86_64 +++ b/scripts/automator/build/clang-linux_x86_64 @@ -3,11 +3,6 @@ ar="llvm-ar${postfix}" ld="llvm-link${postfix}" ranlib="llvm-ranlib${postfix}" -# Build additions -TYPES+=(msan usan) -cflags_msan=("${cflags_debug[@]}" -fsanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer) -cflags_usan=("${cflags_debug[@]}" -fsanitize-recover=all -fsanitize=undefined) - # Modifier additions MODIFIERS+=(lto) cflags_lto+=(-O2 -flto=thin) diff --git a/scripts/automator/build/gcc-darwin_x86_64 b/scripts/automator/build/gcc-darwin_x86_64 index ab1e4320..5f9588e1 100644 --- a/scripts/automator/build/gcc-darwin_x86_64 +++ b/scripts/automator/build/gcc-darwin_x86_64 @@ -7,13 +7,6 @@ ranlib="ranlib" cflags_release+=(-march=nehalem) cflags_optinfo+=(-march=nehalem) -# Build additions -TYPES+=(asan uasan usan tsan) -cflags_asan=("${cflags_debug[@]}" -fsanitize=address) -cflags_uasan=("${cflags_debug[@]}" -fsanitize=address,undefined -fsanitize-recover=signed-integer-overflow) -cflags_usan=("${cflags_debug[@]}" -fsanitize=undefined -fsanitize-recover=signed-integer-overflow) -cflags_tsan=("${cflags_debug[@]}" -fsanitize=thread) - # Modifier additions MODIFIERS+=(lto) cflags_lto+=(-flto) diff --git a/scripts/automator/build/gcc-defaults b/scripts/automator/build/gcc-defaults index 68b3a3ea..4da3fe11 100644 --- a/scripts/automator/build/gcc-defaults +++ b/scripts/automator/build/gcc-defaults @@ -6,7 +6,8 @@ ld="gcc${postfix}" ranlib="gcc-ranlib${postfix}" # Release-type additions -TYPES+=(release debug warnmore pgotrain fdotrain optinfo) +TYPES+=(release debug warnmore pgotrain fdotrain optinfo + asan uasan usan tsan) cflags+=(-fstack-protector -fdiagnostics-color=auto) cflags_debug+=("${cflags[@]}" -g -fno-omit-frame-pointer) @@ -17,16 +18,23 @@ cflags_debug+=("${cflags[@]}" -g -fno-omit-frame-pointer) cflags_release+=("${cflags[@]}" -DNDEBUG -O3 -fno-strict-aliasing -fno-signed-zeros -fno-trapping-math -fassociative-math -frename-registers -ffunction-sections -fdata-sections) - cflags_pgotrain+=("${cflags_debug[@]}" -pg -ftree-vectorize) -cflags_warnmore+=("${cflags_debug[@]}" -pedantic -Wcast-align -Wdouble-promotion - -Wduplicated-branches -Wduplicated-cond -Wextra -Wformat=2 - -Wlogical-op -Wmisleading-indentation -Wnull-dereference - -Wshadow -Wunused) -cxxonly_warnmore+=(-Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wuseless-cast) +cflags_warnmore+=("${cflags_debug[@]}" -pedantic -Wcast-align + -Wdouble-promotion -Wduplicated-branches + -Wduplicated-cond -Wextra -Wformat=2 -Wlogical-op + -Wmisleading-indentation -Wnull-dereference -Wshadow + -Wunused) +cxxonly_warnmore+=(-Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual + -Wuseless-cast) cflags_fdotrain+=("${cflags[@]}" -DNDEBUG -g1 -fno-omit-frame-pointer) cflags_optinfo+=("${cflags_release[@]}" -fopt-info-missed -ftree-vectorizer-verbose=6) +cflags_asan+=("${cflags_debug[@]}" -fsanitize=address) +cflags_uasan+=("${cflags_debug[@]}" -fsanitize=address,undefined + -fsanitize-recover=signed-integer-overflow) +cflags_usan+=("${cflags_debug[@]}" -fsanitize=undefined + -fsanitize-recover=signed-integer-overflow) +cflags_tsan+=("${cflags_debug[@]}" -fsanitize=thread) # Modifier additions MODIFIERS=(fdo) diff --git a/scripts/automator/build/gcc-linux_x86_64 b/scripts/automator/build/gcc-linux_x86_64 index 215ed739..8d9e0296 100644 --- a/scripts/automator/build/gcc-linux_x86_64 +++ b/scripts/automator/build/gcc-linux_x86_64 @@ -6,13 +6,6 @@ x86_math=(-mfpmath=sse -msse4.2) cflags_release+=("${x86_math[@]}") cflags_optinfo+=("${x86_math[@]}") -# Build additions -TYPES+=(asan uasan usan tsan) -cflags_asan=("${cflags_debug[@]}" -fsanitize=address) -cflags_uasan=("${cflags_debug[@]}" -fsanitize=address,undefined -fsanitize-recover=signed-integer-overflow) -cflags_usan=("${cflags_debug[@]}" -fsanitize=undefined -fsanitize-recover=signed-integer-overflow) -cflags_tsan=("${cflags_debug[@]}" -fsanitize=thread) - # Modifier additions MODIFIERS+=(lto) cflags_lto+=(-flto)