diff --git a/.gitignore b/.gitignore index fc445edea9..89b3b79c1a 100644 --- a/.gitignore +++ b/.gitignore @@ -216,6 +216,7 @@ /tags /TAGS /cscope* +*.hcc *.obj *.lib *.res diff --git a/Makefile b/Makefile index 8c37e5412d..d644527d37 100644 --- a/Makefile +++ b/Makefile @@ -1888,7 +1888,7 @@ ifndef V QUIET_MSGFMT = @echo ' ' MSGFMT $@; QUIET_GCOV = @echo ' ' GCOV $@; QUIET_SP = @echo ' ' SP $<; - QUIET_HDR = @echo ' ' HDR $<; + QUIET_HDR = @echo ' ' HDR $(<:hcc=h); QUIET_RC = @echo ' ' RC $@; QUIET_SUBDIR0 = +@subdir= QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ @@ -2788,9 +2788,14 @@ ifndef GCRYPT_SHA256 endif CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H)) HCO = $(patsubst %.h,%.hco,$(CHK_HDRS)) +HCC = $(HCO:hco=hcc) -$(HCO): %.hco: %.h FORCE - $(QUIET_HDR)$(CC) -include git-compat-util.h -I. -o /dev/null -c -xc $< +%.hcc: %.h + @echo '#include "git-compat-util.h"' >$@ + @echo '#include "$<"' >>$@ + +$(HCO): %.hco: %.hcc FORCE + $(QUIET_HDR)$(CC) $(ALL_CFLAGS) -o /dev/null -c -xc $< .PHONY: hdr-check $(HCO) hdr-check: $(HCO) @@ -3095,6 +3100,7 @@ clean: profile-clean coverage-clean cocciclean $(RM) $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git$X $(RM) $(TEST_PROGRAMS) $(RM) $(FUZZ_PROGRAMS) + $(RM) $(HCC) $(RM) -r bin-wrappers $(dep_dirs) $(RM) -r po/build/ $(RM) *.pyc *.pyo */*.pyc */*.pyo command-list.h $(ETAGS_TARGET) tags cscope* diff --git a/apply.h b/apply.h index a795193435..da3d95fa50 100644 --- a/apply.h +++ b/apply.h @@ -1,6 +1,7 @@ #ifndef APPLY_H #define APPLY_H +#include "hash.h" #include "lockfile.h" #include "string-list.h" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 34031b182a..cb9ab1ef80 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -354,7 +354,7 @@ jobs: test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1 sudo apt-get update && - sudo apt-get install -y coccinelle && + sudo apt-get install -y coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext && export jobname=StaticAnalysis && diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index a76f348484..85a9d6b15c 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -49,7 +49,8 @@ osx-clang|osx-gcc) ;; StaticAnalysis) sudo apt-get -q update - sudo apt-get -q -y install coccinelle + sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \ + libexpat-dev gettext ;; Documentation) sudo apt-get -q update diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh index a19aa7ebbc..65bcebda41 100755 --- a/ci/run-static-analysis.sh +++ b/ci/run-static-analysis.sh @@ -26,4 +26,7 @@ then exit 1 fi +make hdr-check || +exit 1 + save_good_tree diff --git a/pack-bitmap.h b/pack-bitmap.h index 00de3ec8e4..466c5afa09 100644 --- a/pack-bitmap.h +++ b/pack-bitmap.h @@ -9,16 +9,16 @@ struct commit; struct repository; struct rev_info; +static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'}; + struct bitmap_disk_header { - char magic[4]; + char magic[ARRAY_SIZE(BITMAP_IDX_SIGNATURE)]; uint16_t version; uint16_t options; uint32_t entry_count; unsigned char checksum[GIT_MAX_RAWSZ]; }; -static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'}; - #define NEEDS_BITMAP (1u<<22) enum pack_bitmap_opts { diff --git a/promisor-remote.h b/promisor-remote.h index c60aaa5cce..737bac3a33 100644 --- a/promisor-remote.h +++ b/promisor-remote.h @@ -1,6 +1,8 @@ #ifndef PROMISOR_REMOTE_H #define PROMISOR_REMOTE_H +#include "repository.h" + struct object_id; /*