|
@@ -4198,13 +4198,21 @@ fi
|
|
|
|
|
|
##########################################
|
|
##########################################
|
|
# checks for fuzzer
|
|
# checks for fuzzer
|
|
-if test "$fuzzing" = "yes" && test -z "${LIB_FUZZING_ENGINE+xxx}"; then
|
|
|
|
|
|
+if test "$fuzzing" = "yes" ; then
|
|
write_c_fuzzer_skeleton
|
|
write_c_fuzzer_skeleton
|
|
- if compile_prog "$CPU_CFLAGS -Werror -fsanitize=fuzzer" ""; then
|
|
|
|
- have_fuzzer=yes
|
|
|
|
- else
|
|
|
|
- error_exit "Your compiler doesn't support -fsanitize=fuzzer"
|
|
|
|
- exit 1
|
|
|
|
|
|
+ if test -z "${LIB_FUZZING_ENGINE+xxx}"; then
|
|
|
|
+ if compile_prog "$CPU_CFLAGS -Werror -fsanitize=fuzzer" ""; then
|
|
|
|
+ have_fuzzer=yes
|
|
|
|
+ else
|
|
|
|
+ error_exit "Your compiler doesn't support -fsanitize=fuzzer"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ have_clang_coverage_filter=no
|
|
|
|
+ echo > $TMPTXT
|
|
|
|
+ if compile_prog "$CPU_CFLAGS -Werror -fsanitize=fuzzer -fsanitize-coverage-allowlist=$TMPTXT" ""; then
|
|
|
|
+ have_clang_coverage_filter=yes
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
@@ -4884,6 +4892,14 @@ if test "$fuzzing" = "yes" ; then
|
|
else
|
|
else
|
|
FUZZ_EXE_LDFLAGS="$LIB_FUZZING_ENGINE"
|
|
FUZZ_EXE_LDFLAGS="$LIB_FUZZING_ENGINE"
|
|
fi
|
|
fi
|
|
|
|
+
|
|
|
|
+ # Specify a filter to only instrument code that is directly related to
|
|
|
|
+ # virtual-devices.
|
|
|
|
+ if test "$have_clang_coverage_filter" = "yes" ; then
|
|
|
|
+ cp "$source_path/scripts/oss-fuzz/instrumentation-filter-template" \
|
|
|
|
+ instrumentation-filter
|
|
|
|
+ QEMU_CFLAGS="$QEMU_CFLAGS -fsanitize-coverage-allowlist=instrumentation-filter"
|
|
|
|
+ fi
|
|
fi
|
|
fi
|
|
|
|
|
|
if test "$plugins" = "yes" ; then
|
|
if test "$plugins" = "yes" ; then
|