mirror of https://github.com/google/oss-fuzz.git
git: workaround new requirement to use common-main (#7818)
Due to upstream changes, the Git fuzzers must now link against common-main.o; however, this breaks the build in two ways: 1) Linking with common-main.o causes main() to have multiple definitions, one in common-main.o and one from the fuzzing engine. 2) To avoid #1, the Git Makefile specifically excludes common-main.o from the fuzzer build rule. To work around these issues, we can override FUZZ_CXXFLAGS (add "-Wl,--allow-multiple-definition" to fix #1) and LIB_FUZZING_ENGINE (add "common-main.o" to fix #2). Once we can get a Makefile fix into Git's upstream, we can remove the override for LIB_FUZZING_ENGINE. However, this change causes `check_build` to fail for honggfuzz, and we have not yet been able to diagnose the reason. So for now, we also need to limit our engines to afl and libfuzzer.
This commit is contained in:
parent
aabda0f17f
commit
930fa5780e
|
@ -16,8 +16,9 @@
|
|||
################################################################################
|
||||
|
||||
# build fuzzers
|
||||
make -j$(nproc) CC=$CC CXX=$CXX CFLAGS="$CFLAGS" FUZZ_CXXFLAGS="$CXXFLAGS" \
|
||||
LIB_FUZZING_ENGINE=$LIB_FUZZING_ENGINE fuzz-all
|
||||
make -j$(nproc) CC=$CC CXX=$CXX CFLAGS="$CFLAGS" \
|
||||
FUZZ_CXXFLAGS="$CXXFLAGS -Wl,--allow-multiple-definition" \
|
||||
LIB_FUZZING_ENGINE="common-main.o $LIB_FUZZING_ENGINE" fuzz-all
|
||||
|
||||
FUZZERS="fuzz-pack-headers fuzz-pack-idx fuzz-commit-graph"
|
||||
|
||||
|
|
|
@ -7,3 +7,8 @@ auto_ccs:
|
|||
- "jonathantanmy@google.com"
|
||||
- "jrn@google.com"
|
||||
main_repo: 'https://github.com/git/git'
|
||||
|
||||
# Disable honggfuzz due to undiagnosed build failures
|
||||
fuzzing_engines:
|
||||
- libfuzzer
|
||||
- afl
|
||||
|
|
Loading…
Reference in New Issue