Thread (3 messages) 3 messages, 3 authors, 2024-10-10

Re: [PATCH] Makefile: fix dependency for $(UNIT_TEST_DIR)/clar/clar.o

flat view

From: Philippe Blain <hidden>
Date: 2024-10-10 12:04:17

Hi,

I had a closer look at how the header dependencies are handled in the Makefile and I think a cleaner and more idiomatic way to fix the problem would be to add clar.suite to GENERATED_H. 

I’ll try to send a v2 tomorrow so maybe hold on to merging it to next for the moment, Junio. 

Thanks
Philippe. 
Le 7 oct. 2024 à 23:58, Patrick Steinhardt [off-list ref] a écrit :

On Mon, Oct 07, 2024 at 05:53:41PM -0700, Junio C Hamano wrote:
quoted
"Philippe Blain via GitGitGadget" [off-list ref] writes:
quoted
From: Philippe Blain <redacted>

The clar source file '$(UNIT_TEST_DIR)/clar/clar.c' includes the
generated 'clar.suite', but this dependency is not taken into account by
our Makefile, so that it is possible for a parallel build to fail if
Make tries to build 'clar.o' before 'clar.suite' is generated.

Correctly specify the dependency.

Signed-off-by: Philippe Blain <redacted>
---
   Makefile: fix dependency for $(UNIT_TEST_DIR)/clar/clar.o

   Hi Patrick,

   I tried building v2.47.0 and stumbled onto this small issue. It
   reproduces for me from a fresh clone on my old 2009 Mac with make -j -l
   2.5, it's a little curious that no one ran into this yet.
I suspect that nobody tells make to build clar.o (and nothing else).

Instead, the t/unit-tests/bin/unit-tests target is what is typically
built, which is part of $(CLAR_TEST_PROG) that has clar.suite as one
of its dependencies.

   $ make
   $ rm -f t/unit-tests/clar.suite t/unit-tests/clar/clar.o
   $ make -j1 t/unit-tests/bin/unit-tests
   GEN t/unit-tests/clar.suite
   CC t/unit-tests/clar/clar.o
   LINK t/unit-tests/bin/unit-tests

What is possible to happen from the broken dependencies is when I
did not remove clar.o in the above experiment.  We may rebuild
clar.suite and then link clar.o that is outdated without realizing.
Makes sense. In any case, the fix looks good to me, thanks!

Patrick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help