On 15/08/18 18:54, Elijah Newren wrote:
> This series fixes compilation errors when using a simple test.c file that
> includes git-compat-util.h and then exactly one other header (and repeating
> this for different headers of git).
>
[snip]
> 1: f7d50cef3b ! 1: e6a93208b2 Add missing includes and forward declares
> @@ -1,6 +1,13 @@
> Author: Elijah Newren <new...@gmail.com>
>
> - Add missing includes and forward declares
> + Add missing includes and forward declarations
> +
> + I looped over the toplevel header files, creating a temporary
> two-line C
> + program for each consisting of
> + #include "git-compat-util.h"
> + #include $HEADER
> + This patch is the result of manually fixing errors in compiling those
> + tiny programs.
As a quick ("just before bedtime") exercise, I tried adding
a Makefile target to perform a similar check. The result is
given below, but I haven't had time to look too closely at
the results:
$ make -k hdr-check >zzz 2>&1
$ grep error zzz | wc -l
18
$ grep warning zzz | wc -l
21
$ grep error zzz | cut -d: -f1 | grep -v make | uniq -c | sort -nr
11 refs/refs-internal.h
2 unicode-width.h
2 json-writer.h
1 refs/ref-cache.h
1 commit-slab-impl.h
$ grep warning zzz | cut -d: -f1 | grep -v make | uniq -c | sort -nr
7 refs/refs-internal.h
5 delta-islands.h
2 unicode-width.h
2 midx.h
2 commit-reach.h
1 refs/ref-cache.h
1 refs/packed-backend.h
1 pack-bitmap.h
$
BTW, I happen to be on the 'pu' branch.
I think some of the errors are due to missing compiler flags
(-I, -D, etc); which flags did you pass to the compiler?
Well, it killed 15min. before bed! ;-)
ATB,
Ramsay Jones
-- >8 --
Subject: [PATCH] Makefile: add a hdr-check target
Signed-off-by: Ramsay Jones <ram...@ramsayjones.plus.com>
---
Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Makefile b/Makefile
index 9923db888c..798396c52e 100644
--- a/Makefile
+++ b/Makefile
@@ -2684,6 +2684,16 @@ $(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
.PHONY: sparse $(SP_OBJ)
sparse: $(SP_OBJ)
+EXCEPT_HDRS := ./compat% ./xdiff% ./ewah%
+CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))
+HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))
+
+$(HCO): %.hco: %.h FORCE
+ $(CC) -Wall -include git-compat-util.h -I. -o /dev/null -c -xc $<
+
+.PHONY: hdr-check $(HCO)
+hdr-check: $(HCO)
+
.PHONY: style
style:
git clang-format --style file --diff --extensions c,h
--
2.18.0