Parallel make failure with gnutls-3.0.12

Kris Karas ktk at enterprise.bidmc.harvard.edu
Fri Jan 20 21:34:06 CET 2012


Greetings,

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 Makefile.am, 
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/split-texi.pl 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