[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/5] libxl: Generate golang bindings in libxl Makefile
George Dunlap writes ("[PATCH 3/5] libxl: Generate golang bindings in libxl Makefile"): > +.PHONY: idl-external > +idl-external: > + $(MAKE) -C $(XEN_ROOT)/tools/golang/xenlight idl-gen Unfortunately this kind of thing is forbidden. At least, without a rigorous proof that this isn't a concurrency hazard. The problem is that with parallel make, the concurrency correctness principles are as follows: (1) different targets use nonoverlapping temporary and output files (makefile authors' responsibiliy) (2) one invocation of make won't make the same target twice at the same time (fundamental principle of operation for make) (3) the same makefile (or different makefiles with overlapping targets) may not be entered multiple times in parallel (build system authors' responsibility; preclucdes most use of make -C to sibling directories rather than to children) A correctness proof to make an exception would involve demonstrating that the tools/golang directories never touch this file when invoked as part of a recursive build. NB, consider the clean targets too. Alternatively, move the generated golang files to tools/libxl maybe, and perhaps leave symlinks behind. Or convert the whole (of tools/, maybe) to nonrecursive make using eg subdirmk :-). https://diziet.dreamwidth.org/5763.html Sorry, Ian.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |