fuzz.sh 880 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env bash
  2. # This file is used by build.sh to setup fuzzing.
  3. set +e
  4. # Default to clang if CC is not set.
  5. if [ -z "$CC" ]; then
  6. if ! command -v clang &> /dev/null 2>&1; then
  7. echo "Fuzzing requires clang!"
  8. exit 1
  9. fi
  10. export CC=clang
  11. export CCC=clang++
  12. export CXX=clang++
  13. fi
  14. gyp_params+=(-Dstatic_libs=1 -Dfuzz=1 -Dsign_libs=0)
  15. # Add debug symbols even for opt builds.
  16. nspr_params+=(--enable-debug-symbols)
  17. if [ "$fuzz_oss" = 1 ]; then
  18. gyp_params+=(-Dno_zdefs=1 -Dfuzz_oss=1)
  19. else
  20. enable_sanitizer asan
  21. # Ubsan only builds on x64 for the moment.
  22. if [ "$target_arch" = "x64" ]; then
  23. enable_ubsan
  24. fi
  25. enable_sancov
  26. fi
  27. if [ "$fuzz_tls" = 1 ]; then
  28. gyp_params+=(-Dfuzz_tls=1)
  29. fi
  30. if [ ! -f "/usr/lib/libFuzzingEngine.a" ]; then
  31. echo "Cloning libFuzzer files ..."
  32. run_verbose "$cwd"/fuzz/config/clone_libfuzzer.sh
  33. fi