[vlc-devel] [PATCH 1/2] configure: Update libfuzzer coverage flags
Tanguy Dubroca
tanguy.dubroca at lse.epita.fr
Sun Feb 7 16:04:35 UTC 2021
libfuzzer is bundled with clang, linking with an external libfuzzer
can cause issues. Additionaly, -fsanitize=fuzzer already enables
coverage instrumentation. Specific coverage options can be removed.
---
configure.ac | 26 ++++++++------------------
test/Makefile.am | 2 ++
2 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/configure.ac b/configure.ac
index d57114af22..9a4e44d7aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -907,9 +907,9 @@ AS_IF([test "${SYS}" = "mingw32"], [
have_dynamic_objects="yes" #assume we can use shared objects
])
-AC_ARG_WITH([libfuzzer],
- AS_HELP_STRING([--with-libfuzzer=DIR],
- [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
+AC_ARG_ENABLE([libfuzzer],
+ AS_HELP_STRING([--enable-libfuzzer],
+ [compiles the libfuzzer harnesses and triggers sanitizer coverage (default disabled)]),
[],
[with_libfuzzer=no])
AS_VAR_IF(with_libfuzzer, no, [], [
@@ -4564,22 +4564,12 @@ dnl Fuzzer (at the end not to mess dependencies FLAGS)
dnl
AS_VAR_IF(with_libfuzzer, no, [], [
LIBS="-lstdc++ ${LIBM}"
- AS_IF([test "${with_libfuzzer}" != "yes"], [
- LIBS="$LIBS -L${with_libfuzzer}"
- ])
- LIBS="$LIBS -lFuzzer"
- AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
- AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
- AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
- AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
- AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
+
+ AX_CHECK_COMPILE_FLAG(-fsanitize=fuzzer-no-link, [
+ AX_APPEND_FLAG([-fsanitize=fuzzer-no-link])
+ AX_APPEND_FLAG([-fsanitize=fuzzer-no-link], [CXXFLAGS])
], [
- AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
- AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
- AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
- ], [
- AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
- ])
+ AC_MSG_ERROR([libfuzzer instrumentation not supported by your compiler])
])
])
diff --git a/test/Makefile.am b/test/Makefile.am
index 54666fdc85..dcc07b6c8e 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -286,7 +286,9 @@ vlc_demux_dec_run_LDADD = libvlc_demux_dec_run.la
EXTRA_PROGRAMS += vlc-demux-run vlc-demux-dec-run
vlc_demux_libfuzzer_LDADD = libvlc_demux_run.la
+vlc_demux_libfuzzer_LDFLAGS = -fsanitize=fuzzer
vlc_demux_dec_libfuzzer_SOURCES = vlc-demux-libfuzzer.c
+vlc_demux_dec_libfuzzer_LDFLAGS = -fsanitize=fuzzer
vlc_demux_dec_libfuzzer_LDADD = libvlc_demux_dec_run.la
if HAVE_LIBFUZZER
noinst_PROGRAMS += vlc-demux-libfuzzer vlc-demux-dec-libfuzzer vlc-demux-run vlc-demux-dec-run
--
2.30.0
More information about the vlc-devel
mailing list