tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: parallel build failure with .c.o rule interrupted mid-step!
Am 24.02.2025 um 21:04 schrieb Greg A. Woods:
> In jobs mode make is supposed to feed the whole rule's script to one
> invocation of a shell, and in theory that invocation should run to
> completion even if some other parallel branch of make encounters an
> error.
That's how it _should_ work.
I made up a little test case (see the attached Makefile), and that test
fails sometimes when I interrupt it by pressing Ctrl+C.
$ ktrace -i make -r -j20   # press Ctrl+C in the middle
$ make -r clean && ls -l
At this point, there may be one or more files named 'target-*' left that
are smaller than the expected 14 bytes.
I got the ktrace log from the above command and will further analyze it.
Roland
dirs=		20
targets=	20
all: .PHONY
.for d in ${:U:${:Urange=${dirs}}}
all: dir-$d
dir-$d: .PHONY
	@${MAKE} -f ${MAKEFILE} do-dir-$d
do-dir-$d: .PHONY
.  for t in ${:U:${:Urange=${targets}}}
do-dir-$d: target-$d-$t
target-$d-$t:
	@echo one > $@
	@echo two >> $@
	@echo three >> $@
	# Make one of the commands fail in the middle.
	@${:U$d$t:M1515}
.  endfor
.endfor
clean:
	@find . -name 'target-*' -size 14c -delete
Home |
Main Index |
Thread Index |
Old Index