On Tue, Aug 26, 2025 at 10:53 AM <rsbecker@xxxxxxxxxxxxx> wrote: > > On August 26, 2025 1:45 PM, Kyle Lippincott wrote: > >On Tue, Aug 26, 2025 at 9:04 AM David Aguilar <davvid@xxxxxxxxx> wrote: > >> > >> The "cargo build" invocations in contrib/ cannot be run in parallel. > >> > >> "make -JN" with INCLUDE_LIBGIT_RS enabled causes cargo lock warnings > >> and can trigger ld errors during the build. > >> > >> The build errors are caused by two inner "make" invocations getting > >> triggered concurrently: once inside of libgit-sys and another inside > >> of libgit-rs. > >> > >> Signed-off-by: David Aguilar <davvid@xxxxxxxxx> > >> --- > >> Makefile | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/Makefile b/Makefile > >> index 29a53520fd..286d3ba3b2 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -3989,7 +3989,7 @@ libgit-sys libgit-rs: > >> cargo build \ > >> ) > >> ifdef INCLUDE_LIBGIT_RS > >> -all:: libgit-sys libgit-rs > >> +all:: libgit-sys .WAIT libgit-rs > > > >I'm not familiar enough with make or with rust, but do we need to depend on both > >of these here? Wouldn't it be sufficient to say libgit-rs depends on libgit-sys, and > >only explicitly depend on libgit-rs in `all::`? > > Not all platforms can build libgit-rs, so inserting it into as a required component is not > a particularly friendly idea. > That's not what I was suggesting. This is already in an `ifdef`, and the line I was quoting was changing `all:: libgit-sys libgit-rs` to `all:: libgit-sys .WAIT libgit-rs`. I'm wondering if we can instead split the `libgit-sys libgit-rs:` from a few lines earlier into `libgit-sys:` and `libgit-rs: libgit-sys` and then change this all line to `all:: libgit-rs` (still behind `ifdef INCLUDE_LIBGIT_RS`).