aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects
diff options
context:
space:
mode:
authorGravatar steadmon <josh@steadmon.net>2022-07-16 16:46:23 -0700
committerGravatar GitHub <noreply@github.com>2022-07-17 00:46:23 +0100
commit930fa5780e8d42587fb076fb1df9d64daed2087f (patch)
tree227e00ecddcd62bfe2b5e9942a93fdacf6aba1b4 /projects
parentaabda0f17f4cd037130a5bf87d05016cbb03fcdf (diff)
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.
Diffstat (limited to 'projects')
-rwxr-xr-xprojects/git/build.sh5
-rw-r--r--projects/git/project.yaml5
2 files changed, 8 insertions, 2 deletions
diff --git a/projects/git/build.sh b/projects/git/build.sh
index 8770a831..eb3dbfa7 100755
--- a/projects/git/build.sh
+++ b/projects/git/build.sh
@@ -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"
diff --git a/projects/git/project.yaml b/projects/git/project.yaml
index 8203db61..0684d021 100644
--- a/projects/git/project.yaml
+++ b/projects/git/project.yaml
@@ -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