]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'js/oss-fuzz-build-in-ci'
authorJunio C Hamano <gitster@pobox.com>
Tue, 30 Jan 2024 00:03:00 +0000 (16:03 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Jan 2024 00:03:00 +0000 (16:03 -0800)
oss-fuzz tests are built and run in CI.

* js/oss-fuzz-build-in-ci:
  ci: build and run minimal fuzzers in GitHub CI
  fuzz: fix fuzz test build rules

1  2 
Makefile

diff --cc Makefile
index 1a62e4875947f89b55902c0f49841d3dc347ada7,6c279b137e866f25f92d44d44e394124866ab1a8..0f748a52e6b5b500a00ced3b9d9e6617ddd8293c
+++ b/Makefile
@@@ -752,8 -749,11 +752,12 @@@ SCRIPTS = $(SCRIPT_SH_GEN) 
  
  ETAGS_TARGET = TAGS
  
+ # If you add a new fuzzer, please also make sure to run it in
+ # ci/run-build-and-minimal-fuzzers.sh so that we make sure it still links and
+ # runs in the future.
+ FUZZ_OBJS += oss-fuzz/dummy-cmd-main.o
  FUZZ_OBJS += oss-fuzz/fuzz-commit-graph.o
 +FUZZ_OBJS += oss-fuzz/fuzz-date.o
  FUZZ_OBJS += oss-fuzz/fuzz-pack-headers.o
  FUZZ_OBJS += oss-fuzz/fuzz-pack-idx.o
  .PHONY: fuzz-objs
@@@ -3857,20 -3849,9 +3861,21 @@@ FUZZ_CXXFLAGS ?= $(ALL_CFLAGS
  
  .PHONY: fuzz-all
  
- $(FUZZ_PROGRAMS): all
-       $(QUIET_LINK)$(CXX) $(FUZZ_CXXFLAGS) $(LIB_OBJS) $(BUILTIN_OBJS) \
-               $(XDIFF_OBJS) $(EXTLIBS) git.o $@.o $(LIB_FUZZING_ENGINE) -o $@
+ $(FUZZ_PROGRAMS): %: %.o oss-fuzz/dummy-cmd-main.o $(GITLIBS) GIT-LDFLAGS
+       $(QUIET_LINK)$(CXX) $(FUZZ_CXXFLAGS) -o $@ $(ALL_LDFLAGS) \
+               -Wl,--allow-multiple-definition \
+               $(filter %.o,$^) $(filter %.a,$^) $(LIBS) $(LIB_FUZZING_ENGINE)
  
  fuzz-all: $(FUZZ_PROGRAMS)
 +
 +$(UNIT_TEST_BIN):
 +      @mkdir -p $(UNIT_TEST_BIN)
 +
 +$(UNIT_TEST_PROGS): $(UNIT_TEST_BIN)/%$X: $(UNIT_TEST_DIR)/%.o $(UNIT_TEST_DIR)/test-lib.o $(GITLIBS) GIT-LDFLAGS $(UNIT_TEST_BIN)
 +      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \
 +              $(filter %.o,$^) $(filter %.a,$^) $(LIBS)
 +
 +.PHONY: build-unit-tests unit-tests
 +build-unit-tests: $(UNIT_TEST_PROGS)
 +unit-tests: $(UNIT_TEST_PROGS)
 +      $(MAKE) -C t/ unit-tests