diff options
author | Tim Taubert <ttaubert@mozilla.com> | 2016-12-22 11:40:27 +0100 |
---|---|---|
committer | Tim Taubert <ttaubert@mozilla.com> | 2016-12-22 11:40:27 +0100 |
commit | a9fad3b9632b1e28bf33e531aa8f038a8507daca (patch) | |
tree | d3a6eac0f95d88e01936cc990a3e9572d347174a /build.sh | |
parent | 1300459a82c8ac8ee3d4ef9da643c8efae408e36 (diff) | |
download | nss-hg-a9fad3b9632b1e28bf33e531aa8f038a8507daca.tar.gz |
Bug 1325089 - Use clang-4.0 and sancov=trace-pc-guard for fuzzing r=franziskus
Differential Revision: https://nss-review.dev.mozaws.net/D128
Diffstat (limited to 'build.sh')
-rwxr-xr-x | build.sh | 29 |
1 files changed, 24 insertions, 5 deletions
@@ -36,6 +36,7 @@ NSS build tool options: --opt|-o do an opt build --asan do an asan build --ubsan do an ubsan build + --ubsan=bool,shift,... sets specific UB sanitizers --msan do an msan build --sancov do sanitize coverage builds --sancov=func sets coverage to function level for example @@ -54,7 +55,7 @@ rebuild_gyp=0 target=Debug verbose=0 fuzz=0 -sancov_default=edge,indirect-calls,8bit-counters +ubsan_default=bool,signed-integer-overflow,shift,vptr # parse parameters to store in config params=$(echo "$*" | perl -pe 's/-c|-v|-g|-j [0-9]*|-h//g' | perl -pe 's/^\s*(.*?)\s*$/\1/') @@ -74,13 +75,30 @@ gyp_params=() ninja_params=() scanbuild=() +sancov_default() +{ + clang_version=$($CC --version | grep -oE 'clang version (3\.9\.|4\.)') + if [ -z "$clang_version" ]; then + echo "Need at least clang-3.9 (better 4.0) for sancov." 1>&2 + exit 1 + fi + + if [ "$clang_version" = "clang version 3.9." ]; then + echo edge,indirect-calls,8bit-counters + else + echo trace-pc-guard + fi +} + enable_fuzz() { fuzz=1 nspr_sanitizer asan - nspr_sanitizer sancov $sancov_default + nspr_sanitizer ubsan $ubsan_default + nspr_sanitizer sancov $(sancov_default) gyp_params+=(-Duse_asan=1) - gyp_params+=(-Duse_sancov=$sancov_default) + gyp_params+=(-Duse_ubsan=$ubsan_default) + gyp_params+=(-Duse_sancov=$(sancov_default)) # Adding debug symbols even for opt builds. nspr_opt+=(--enable-debug-symbols) @@ -100,8 +118,9 @@ while [ $# -gt 0 ]; do --opt|-o) opt_build=1 ;; -m32|--m32) build_64=0 ;; --asan) gyp_params+=(-Duse_asan=1); nspr_sanitizer asan ;; - --ubsan) gyp_params+=(-Duse_ubsan=1); nspr_sanitizer ubsan ;; - --sancov) gyp_params+=(-Duse_sancov=$sancov_default); nspr_sanitizer sancov $sancov_default ;; + --ubsan) gyp_params+=(-Duse_ubsan=$ubsan_default); nspr_sanitizer ubsan $ubsan_default ;; + --ubsan=?*) gyp_params+=(-Duse_ubsan="${1#*=}"); nspr_sanitizer ubsan "${1#*=}" ;; + --sancov) gyp_params+=(-Duse_sancov=$(sancov_default)); nspr_sanitizer sancov $(sancov_default) ;; --sancov=?*) gyp_params+=(-Duse_sancov="${1#*=}"); nspr_sanitizer sancov "${1#*=}" ;; --pprof) gyp_params+=(-Duse_pprof=1) ;; --msan) gyp_params+=(-Duse_msan=1); nspr_sanitizer msan ;; |