Parallel make failure with gnutls-3.0.12

Kris Karas ktk at
Fri Jan 20 21:34:06 CET 2012


A bug was introduced into gnutls-3.0.12 in the logic that creates the 
"gnutls-3.0.12/doc/enums/" directory and its dependents, specifically 
when "make" is run in parallel (e.g. "make -j10").

What is happening is this:  For each file in ./doc/enums/ that gets 
created, the make creates a temporary file called 
"tmp-compare-makefile", runs "diff" against that file and, 
then removes the file.  However, no interlocking takes place to ensure 
that only one instance of "make" accesses the same file at once.  With a 
parallel build, one make is removing the file while another make is 
creating/diffing it, with predictable results.  Here's a typical snippit 
of the output of a parallel make (in this case, "make -j10"):

	rm -f tmp-compare-makefile
	make[4]: [enums/gnutls_certificate_print_formats_t] Error 1 (ignored)
	./scripts/ enums enum<  enums.texi
	make[5]: Leaving directory `/tmp/gnutls-3.0.12/doc'
	diff: tmp-compare-makefile: No such file or directory
	mkdir enums
	make[5]: *** [compare-makefile] Error 2

Best regards,
Kris Karas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20120120/588a2b76/attachment.htm>

More information about the Gnutls-devel mailing list