[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/29] configure: fix --enable-fuzzing linker failures
From: |
Paolo Bonzini |
Subject: |
[PULL 02/29] configure: fix --enable-fuzzing linker failures |
Date: |
Fri, 26 Feb 2021 09:04:59 +0100 |
From: Alexander Bulekov <alxndr@bu.edu>
With --enable-fuzzing, QEMU_CFLAGS include -fsanitize=fuzzer-no-link.
This should allow us to build non-fuzzer binaries using objects
instrumented for fuzzing. However, to do that, we also need to link with
-fsanitize=fuzzer-no-link. We were not doing that.
Reported-by: Li Qiang <liq3ea@163.com>,
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Message-Id: <20210221174510.22542-1-alxndr@bu.edu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/configure b/configure
index a79b3746d4..19f2b88589 100755
--- a/configure
+++ b/configure
@@ -6096,7 +6096,17 @@ if test "$fuzzing" = "yes" ; then
# If LIB_FUZZING_ENGINE is set, assume we are running on OSS-Fuzz, and the
# needed CFLAGS have already been provided
if test -z "${LIB_FUZZING_ENGINE+xxx}" ; then
+ # Add CFLAGS to tell clang to add fuzzer-related instrumentation to all the
+ # compiled code.
QEMU_CFLAGS="$QEMU_CFLAGS -fsanitize=fuzzer-no-link"
+ # To build non-fuzzer binaries with --enable-fuzzing, link everything with
+ # fsanitize=fuzzer-no-link. Otherwise, the linker will be unable to bind
+ # the fuzzer-related callbacks added by instrumentation.
+ QEMU_LDFLAGS="$QEMU_LDFLAGS -fsanitize=fuzzer-no-link"
+ # For the actual fuzzer binaries, we need to link against the libfuzzer
+ # library. Provide the flags for doing this in FUZZ_EXE_LDFLAGS. The meson
+ # rule for the fuzzer adds these to the link_args. They need to be
+ # configurable, to support OSS-Fuzz
FUZZ_EXE_LDFLAGS="-fsanitize=fuzzer"
else
FUZZ_EXE_LDFLAGS="$LIB_FUZZING_ENGINE"
--
2.29.2
- [PULL 00/29] Misc patches for 2021-02-25, Paolo Bonzini, 2021/02/26
- [PULL 02/29] configure: fix --enable-fuzzing linker failures,
Paolo Bonzini <=
- [PULL 05/29] scsi: add tracing for SG_IO commands, Paolo Bonzini, 2021/02/26
- [PULL 01/29] hvf: Sign the code after installation, Paolo Bonzini, 2021/02/26
- [PULL 03/29] multiprocess: move feature to meson_options.txt, Paolo Bonzini, 2021/02/26
- [PULL 06/29] scsi: allow user to set werror as report, Paolo Bonzini, 2021/02/26
- [PULL 10/29] scsi: introduce scsi_sense_from_errno(), Paolo Bonzini, 2021/02/26
- [PULL 13/29] scsi: drop 'result' argument from command_complete callback, Paolo Bonzini, 2021/02/26
- [PULL 18/29] qemu-options: update to show preferred boolean syntax for -netdev, Paolo Bonzini, 2021/02/26
- [PULL 12/29] scsi-disk: pass guest recoverable errors through even for rerror=stop, Paolo Bonzini, 2021/02/26
- [PULL 16/29] qemu-options: update to show preferred boolean syntax for -chardev, Paolo Bonzini, 2021/02/26
- [PULL 17/29] qemu-options: update to show preferred boolean syntax for -spice, Paolo Bonzini, 2021/02/26