Message ID | 20190918231846.22538-7-alxndr@bu.edu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add virtual device fuzzing support | expand |
On Wed, Sep 18, 2019 at 11:19:33PM +0000, Oleinik, Alexander wrote: > Signed-off-by: Alexander Oleinik <alxndr@bu.edu> > --- > configure | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/configure b/configure > index 30aad233d1..775f46f55a 100755 > --- a/configure > +++ b/configure > @@ -498,6 +498,7 @@ libxml2="" > debug_mutex="no" > libpmem="" > default_devices="yes" > +fuzzing="no" > > supported_cpu="no" > supported_os="no" > @@ -1521,6 +1522,8 @@ for opt do > ;; > --disable-libpmem) libpmem=no > ;; > + --enable-fuzzing) fuzzing=yes > + ;; Please add --disable-fuzzing, the ./configure script says: # Always add --enable-foo and --disable-foo command line args. > *) > echo "ERROR: unknown option $opt" > echo "Try '$0 --help' for more information" > @@ -6429,6 +6432,7 @@ echo "capstone $capstone" > echo "libpmem support $libpmem" > echo "libudev $libudev" > echo "default devices $default_devices" > +echo "fuzzing support $fuzzing" > > if test "$supported_cpu" = "no"; then > echo > @@ -7258,6 +7262,10 @@ fi > if test "$sheepdog" = "yes" ; then > echo "CONFIG_SHEEPDOG=y" >> $config_host_mak > fi > +if test "$fuzzing" = "yes" ; then > + FUZZ_LDFLAGS=" -fsanitize=address,fuzzer" > + FUZZ_CFLAGS=" -fsanitize=address,fuzzer" > +fi Is -fsanitize=fuzzer a clang-only option? If yes, then please ensure that there is a friendly error message when ./configure is run with gcc. You could probe if -fsanitize=fuzzer works and then check that fuzzing=no when this feature is unavailable.
On Thu, 2019-09-19 at 11:28 +0100, Stefan Hajnoczi wrote: > Is -fsanitize=fuzzer a clang-only option? If yes, then please ensure > that there is a friendly error message when ./configure is run with > gcc. > You could probe if -fsanitize=fuzzer works and then check that > fuzzing=no when this feature is unavailable. Yes, fsantizier=fuzzer is a clang-only feature. I'll add a probe for it.
diff --git a/configure b/configure index 30aad233d1..775f46f55a 100755 --- a/configure +++ b/configure @@ -498,6 +498,7 @@ libxml2="" debug_mutex="no" libpmem="" default_devices="yes" +fuzzing="no" supported_cpu="no" supported_os="no" @@ -1521,6 +1522,8 @@ for opt do ;; --disable-libpmem) libpmem=no ;; + --enable-fuzzing) fuzzing=yes + ;; *) echo "ERROR: unknown option $opt" echo "Try '$0 --help' for more information" @@ -6429,6 +6432,7 @@ echo "capstone $capstone" echo "libpmem support $libpmem" echo "libudev $libudev" echo "default devices $default_devices" +echo "fuzzing support $fuzzing" if test "$supported_cpu" = "no"; then echo @@ -7258,6 +7262,10 @@ fi if test "$sheepdog" = "yes" ; then echo "CONFIG_SHEEPDOG=y" >> $config_host_mak fi +if test "$fuzzing" = "yes" ; then + FUZZ_LDFLAGS=" -fsanitize=address,fuzzer" + FUZZ_CFLAGS=" -fsanitize=address,fuzzer" +fi if test "$tcg_interpreter" = "yes"; then QEMU_INCLUDES="-iquote \$(SRC_PATH)/tcg/tci $QEMU_INCLUDES" @@ -7339,6 +7347,11 @@ if test "$libudev" != "no"; then echo "CONFIG_LIBUDEV=y" >> $config_host_mak echo "LIBUDEV_LIBS=$libudev_libs" >> $config_host_mak 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 # use included Linux headers if test "$linux" = "yes" ; then
Signed-off-by: Alexander Oleinik <alxndr@bu.edu> --- configure | 13 +++++++++++++ 1 file changed, 13 insertions(+)