Hi, GNU Make now has a --shuffle option that simulates non-deterministic ordering of target prerequisites. See https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous work in Debian by Santiago Vila: https://people.debian.org/~sanvila/make-shuffle/ This package fails to build with make --shuffle=reverse. This is likely to be caused by a missing dependency in debian/rules or an upstream Makefile. More information about this mass bug filing is available at https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle Relevant part (hopefully): The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/reverse/vile_9.8za-1_unstable_reverse.log If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects
It took a few tries, but I was able to reproduce it with the attached script abstracted from your log, on an 8-CPU machine.
It took a few tries, but I was able to reproduce it with the attached script abstracted from your log, on an 8-CPU machine.
revisiting this, I noticed an error in my reproducer script (the --prefix option should have been --prefix=/usr), but since I'd had some success with that machine, spent some time to determine the cause of the problem. Basically, the problem is that make -j is chopping up the list in a line like this: install: $(INSTALL_DIRS) $(INSTALL_FILES) and executing the rules for the latter first. I suppose that I can add a configure check for ".WAIT" and use that: install: $(INSTALL_DIRS) .WAIT $(INSTALL_FILES)
.WAIT is new to me. Looking at the make docs, it seems that:
.NOTPARALLEL: install
would also work.
.WAIT is new to me. Looking at the make docs, it seems that:
.NOTPARALLEL: install
would also work.