On Tue, Aug 26, 2025 at 4:35 PM David Aguilar <davvid@xxxxxxxxx> wrote: > > "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. > > Make libgit-rs depend on libgit-sys so that "make" prevents them > from running concurrently. Apply the same logic to the test invocations. > Use cargo's "--manifest-path" option instead of "cd" in the recipes. > > Signed-off-by: David Aguilar <davvid@xxxxxxxxx> > --- > > Differences since v0: > > * The targets have been split apart into > separate targets so that the libgit-rs targets can be made to > depend on the libgit-sys targets. > > * cargo build/test --manifest-path is being used to simplify > the build recipe by eliminating the "cd" step, which would > have been duplicated in the split-out target. > > * t/Makefile has been updated to apply the same logic. > > Makefile | 11 +++++------ > t/Makefile | 14 ++++---------- > 2 files changed, 9 insertions(+), 16 deletions(-) > > diff --git a/Makefile b/Makefile > index 29a53520fd..539e6907b4 100644 > --- a/Makefile > +++ b/Makefile > @@ -3983,13 +3983,12 @@ unit-tests: $(UNIT_TEST_PROGS) $(CLAR_TEST_PROG) t/helper/test-tool$X > $(MAKE) -C t/ unit-tests > > .PHONY: libgit-sys libgit-rs > -libgit-sys libgit-rs: > - $(QUIET)(\ > - cd contrib/$@ && \ > - cargo build \ > - ) > +libgit-sys: > + $(QUIET)cargo build --manifest-path contrib/libgit-sys/Cargo.toml > +libgit-rs: libgit-sys > + $(QUIET)cargo build --manifest-path contrib/libgit-rs/Cargo.toml > ifdef INCLUDE_LIBGIT_RS > -all:: libgit-sys libgit-rs > +all:: libgit-rs > endif > > LIBGIT_PUB_OBJS += contrib/libgit-sys/public_symbol_export.o > diff --git a/t/Makefile b/t/Makefile > index 791e0a0978..29dd226c7d 100644 > --- a/t/Makefile > +++ b/t/Makefile > @@ -190,15 +190,9 @@ perf: > > .PHONY: libgit-sys-test libgit-rs-test > libgit-sys-test: > - $(QUIET)(\ > - cd ../contrib/libgit-sys && \ > - cargo test \ > - ) > -libgit-rs-test: > - $(QUIET)(\ > - cd ../contrib/libgit-rs && \ > - cargo test \ > - ) > + $(QUIET)cargo test --manifest-path ../contrib/libgit-sys/Cargo.toml > +libgit-rs-test: libgit-sys-test > + $(QUIET)cargo test --manifest-path ../contrib/libgit-rs/Cargo.toml > ifdef INCLUDE_LIBGIT_RS > -all:: libgit-sys-test libgit-rs-test > +all:: libgit-rs-test > endif > -- > 2.50.0.7.ge90cf88798 This version looks good to me, thanks!