fuzz: add configure flag --enable-fuzzing
Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Message-id: 20200220041118.23264-19-alxndr@bu.edu Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
c621dc3e01
commit
adc28027ff
39
configure
vendored
39
configure
vendored
@ -505,6 +505,7 @@ debug_mutex="no"
|
|||||||
libpmem=""
|
libpmem=""
|
||||||
default_devices="yes"
|
default_devices="yes"
|
||||||
plugins="no"
|
plugins="no"
|
||||||
|
fuzzing="no"
|
||||||
|
|
||||||
supported_cpu="no"
|
supported_cpu="no"
|
||||||
supported_os="no"
|
supported_os="no"
|
||||||
@ -635,6 +636,15 @@ int main(void) { return 0; }
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
write_c_fuzzer_skeleton() {
|
||||||
|
cat > $TMPC <<EOF
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
|
||||||
|
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; }
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
if check_define __linux__ ; then
|
if check_define __linux__ ; then
|
||||||
targetos="Linux"
|
targetos="Linux"
|
||||||
elif check_define _WIN32 ; then
|
elif check_define _WIN32 ; then
|
||||||
@ -1558,6 +1568,10 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--disable-containers) use_containers="no"
|
--disable-containers) use_containers="no"
|
||||||
;;
|
;;
|
||||||
|
--enable-fuzzing) fuzzing=yes
|
||||||
|
;;
|
||||||
|
--disable-fuzzing) fuzzing=no
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: unknown option $opt"
|
echo "ERROR: unknown option $opt"
|
||||||
echo "Try '$0 --help' for more information"
|
echo "Try '$0 --help' for more information"
|
||||||
@ -6072,6 +6086,15 @@ EOF
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# checks for fuzzer
|
||||||
|
if test "$fuzzing" = "yes" ; then
|
||||||
|
write_c_fuzzer_skeleton
|
||||||
|
if compile_prog "$CPU_CFLAGS -Werror -fsanitize=address,fuzzer" ""; then
|
||||||
|
have_fuzzer=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# check for libpmem
|
# check for libpmem
|
||||||
|
|
||||||
@ -6666,6 +6689,7 @@ echo "libpmem support $libpmem"
|
|||||||
echo "libudev $libudev"
|
echo "libudev $libudev"
|
||||||
echo "default devices $default_devices"
|
echo "default devices $default_devices"
|
||||||
echo "plugin support $plugins"
|
echo "plugin support $plugins"
|
||||||
|
echo "fuzzing support $fuzzing"
|
||||||
|
|
||||||
if test "$supported_cpu" = "no"; then
|
if test "$supported_cpu" = "no"; then
|
||||||
echo
|
echo
|
||||||
@ -7504,6 +7528,16 @@ fi
|
|||||||
if test "$sheepdog" = "yes" ; then
|
if test "$sheepdog" = "yes" ; then
|
||||||
echo "CONFIG_SHEEPDOG=y" >> $config_host_mak
|
echo "CONFIG_SHEEPDOG=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
if test "$fuzzing" = "yes" ; then
|
||||||
|
if test "$have_fuzzer" = "yes"; then
|
||||||
|
FUZZ_LDFLAGS=" -fsanitize=address,fuzzer"
|
||||||
|
FUZZ_CFLAGS=" -fsanitize=address,fuzzer"
|
||||||
|
CFLAGS=" -fsanitize=address,fuzzer-no-link"
|
||||||
|
else
|
||||||
|
error_exit "Your compiler doesn't support -fsanitize=address,fuzzer"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$plugins" = "yes" ; then
|
if test "$plugins" = "yes" ; then
|
||||||
echo "CONFIG_PLUGIN=y" >> $config_host_mak
|
echo "CONFIG_PLUGIN=y" >> $config_host_mak
|
||||||
@ -7605,6 +7639,11 @@ if test "$libudev" != "no"; then
|
|||||||
echo "CONFIG_LIBUDEV=y" >> $config_host_mak
|
echo "CONFIG_LIBUDEV=y" >> $config_host_mak
|
||||||
echo "LIBUDEV_LIBS=$libudev_libs" >> $config_host_mak
|
echo "LIBUDEV_LIBS=$libudev_libs" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
if test "$fuzzing" != "no"; then
|
||||||
|
echo "CONFIG_FUZZ=y" >> $config_host_mak
|
||||||
|
echo "FUZZ_CFLAGS=$FUZZ_CFLAGS" >> $config_host_mak
|
||||||
|
echo "FUZZ_LDFLAGS=$FUZZ_LDFLAGS" >> $config_host_mak
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$edk2_blobs" = "yes" ; then
|
if test "$edk2_blobs" = "yes" ; then
|
||||||
echo "DECOMPRESS_EDK2_BLOBS=y" >> $config_host_mak
|
echo "DECOMPRESS_EDK2_BLOBS=y" >> $config_host_mak
|
||||||
|
Loading…
Reference in New Issue
Block a user