From: Evgeny Vereshchagin Date: Tue, 27 Apr 2021 00:03:39 +0000 (+0000) Subject: build-system: turn off lto=thin when building the fuzzers X-Git-Tag: lxc-5.0.0~189^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a10327e7d80bfbce01035ad98e69ce4428e99138;p=thirdparty%2Flxc.git 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 --- 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