Build general-fuzzer wrappers for each configuration defined in general_fuzzer_configs.yml and move the actual general-fuzzer to a subdirectory, so oss-fuzz doesn't treat it as a standalone fuzzer.
Signed-off-by: Alexander Bulekov <alx...@bu.edu> --- scripts/oss-fuzz/build.sh | 8 +++++++- scripts/oss-fuzz/general_fuzzer_configs.yml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh index a07b3022e8..2071e77ac2 100755 --- a/scripts/oss-fuzz/build.sh +++ b/scripts/oss-fuzz/build.sh @@ -38,7 +38,7 @@ OSS_FUZZ_BUILD_DIR="./build-oss-fuzz/" # remove it, resulting in an unresolved reference to qemu_build_not_reached # Undefine the __OPTIMIZE__ macro which compiler.h relies on to choose whether # to " #define qemu_build_not_reached() g_assert_not_reached() " -EXTRA_CFLAGS="$CFLAGS -U __OPTIMIZE__" +EXTRA_CFLAGS="$CFLAGS -U __OPTIMIZE__ -DCONFIG_FUZZ=y" if ! { [ -e "./COPYING" ] && [ -e "./MAINTAINERS" ] && @@ -101,5 +101,11 @@ do cp ./i386-softmmu/qemu-fuzz-i386 "$DEST_DIR/qemu-fuzz-i386-target-$target" done +mkdir -p "$DEST_DIR/deps" +mv "$DEST_DIR/qemu-fuzz-i386-target-general-fuzz" "$DEST_DIR/deps/" + +./scripts/oss-fuzz/build_general_fuzzers.py \ + "./scripts/oss-fuzz/general_fuzzer_configs.yml" "$DEST_DIR/general-fuzz-" + echo "Done. The fuzzers are located in $DEST_DIR" exit 0 diff --git a/scripts/oss-fuzz/general_fuzzer_configs.yml b/scripts/oss-fuzz/general_fuzzer_configs.yml index 010e92a2a5..f70bacb243 100644 --- a/scripts/oss-fuzz/general_fuzzer_configs.yml +++ b/scripts/oss-fuzz/general_fuzzer_configs.yml @@ -92,7 +92,7 @@ configs: -device usb-braille,chardev=cd0 -device usb-ccid -device usb-ccid -device usb-kbd -device usb-mouse -device usb-serial,chardev=cd1 -device usb-tablet -device usb-wacom-tablet -device usb-audio - objects: "*usb* *uhci* *xhci*" + objects: "*usb* *xhci*" - name: pc-i440fx args: -machine pc -- 2.27.0