From a10327e7d80bfbce01035ad98e69ce4428e99138 Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Tue, 27 Apr 2021 00:03:39 +0000 Subject: [PATCH] build-system: turn off lto=thin when building the fuzzers With lto=thin the fuzzers fail as soon as they start with ``` ERROR: The size of coverage PC tables does not match the number of instrumented PCs. This might be a compiler bug, please contact the libFuzzer developers. Also check https://bugs.llvm.org/show_bug.cgi?id=34636 for possible workarounds (tl;dr: don't use the old GNU ld) ``` Signed-off-by: Evgeny Vereshchagin --- configure.ac | 15 +++++++++------ src/tests/oss-fuzz.sh | 3 --- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 094fe146b..1fe05a63a 100644 --- a/configure.ac +++ b/configure.ac @@ -484,12 +484,16 @@ else AC_MSG_RESULT([no]) fi -if test "x$enable_fuzzers" = "xyes" -a "x$LIB_FUZZING_ENGINE" = x; then - CC_CHECK_FLAGS_APPEND([AM_CFLAGS],[CFLAGS],[ \ - -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION \ - -fsanitize=fuzzer-no-link]) - AC_SUBST(AM_CFLAGS) +if test "x$enable_fuzzers" = "xyes"; then + if test "x$LIB_FUZZING_ENGINE" = x; then + CC_CHECK_FLAGS_APPEND([AM_CFLAGS],[CFLAGS],[ \ + -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION \ + -fsanitize=fuzzer-no-link]) + fi +else + CC_CHECK_FLAGS_APPEND([AM_CFLAGS],[CFLAGS],[-flto=thin]) fi +AC_SUBST(AM_CFLAGS) # Optional test binaries AC_ARG_ENABLE([tests], @@ -815,7 +819,6 @@ CC_CHECK_FLAGS_APPEND([AM_CFLAGS],[CFLAGS],[ \ -Warray-bounds \ -Wrestrict \ -Wreturn-local-addr \ - -flto=thin \ -fsanitize=cfi \ -Wstringop-overflow]) AC_SUBST(AM_CFLAGS) diff --git a/src/tests/oss-fuzz.sh b/src/tests/oss-fuzz.sh index 27af5b1ae..db91f9230 100755 --- a/src/tests/oss-fuzz.sh +++ b/src/tests/oss-fuzz.sh @@ -24,9 +24,6 @@ mkdir -p $OUT export LIB_FUZZING_ENGINE=${LIB_FUZZING_ENGINE:--fsanitize=fuzzer} -# AFL++ and hoggfuzz are both incompatible with lto=thin apparently -sed -i '/-flto=thin/d' configure.ac - # turn off the libutil dependency sed -i 's/^AC_CHECK_LIB(util/#/' configure.ac -- 2.47.2