On 08/07/2019 11:19, Daniel P. Berrangé wrote: > On Mon, Jul 08, 2019 at 12:17:12PM +0200, Philippe Mathieu-Daudé wrote: >> On 7/8/19 11:41 AM, Daniel P. Berrangé wrote: >>> On Sat, Jul 06, 2019 at 09:35:30PM +0100, Peter Maydell wrote: >>>> On Sat, 6 Jul 2019 at 11:28, Mark Cave-Ayland >>>> <mark.cave-ayl...@ilande.co.uk> wrote: >>>>> >>>>> On 06/07/2019 11:16, Peter Maydell wrote: >>>>>> If you just do 'make' rather than 'make install' does it fail the same >>>>>> way? >>>>> >>>>> Interesting. A quick test shows that "make V=1 -j2" works fine, it's just >>>>> "make V=1 >>>>> -j2 install" which is failing. >>>> >>>> Mmm. I suspect most people just do the plain make (with the make install >>>> phase either never or as a second command afterwards), so >>>> missing-dependency >>>> bugs between the install targets and the build targets are probably more >>>> likely to lurk around. We should stil fix them, though, assuming we >>>> can track them down... >>> >>> The main 'install' target depends on 'all': >>> >>> install: all $(if $(BUILD_DOCS),install-doc) install-datadir >>> install-localstatedir \ >>> >>> >>> but I think still allows 'install-doc', 'install-datadir' and >>> 'install-localstatedir' to parallelize wrt 'all'. I guess the fix is to >>> make each of those 'install-xxx' targets depend on 'all' instead. >> >> I'm not sure I follow, are you suggesting this as a kludge for this >> release, or you recommend this as a default? > > I think it is the right solution in general. > >> Apparently only 'recurse-install' depends of 'all'.
Something also looks a bit odd with distclean here on a fresh checkout: build@ezio:~/src/qemu/git/tmp/qemu$ make distclean LD recurse-clean.mo cc: fatal error: no input files compilation terminated. rules.mak:118: recipe for target 'recurse-clean.mo' failed make: *** [recurse-clean.mo] Error 1 A bit more experimentation shows that it's related to having multiple softmmu targets: Works: './configure' '--target-list=x86_64-softmmu' '--prefix=/home/build/rel-qemu-git' make V=1 -j4 install './configure' '--target-list=x86_64-softmmu arm-softmmu' '--prefix=/home/build/rel-qemu-git' make V=1 -j4 install './configure' '--target-list=x86_64-softmmu arm-softmmu ppc-softmmu' '--prefix=/home/build/rel-qemu-git' make V=1 -j4 install Fails: './configure' '--target-list=x86_64-softmmu arm-softmmu ppc-softmmu sparc-softmmu' '--prefix=/home/build/rel-qemu-git' make V=1 -j4 install './configure' '--target-list=x86_64-softmmu arm-softmmu ppc-softmmu mips-softmmu' '--prefix=/home/build/rel-qemu-git' make V=1 -j4 install Looking at the output it feels as if we're trying to build something that depends upon libqemu.a before it's ready, but only with a long list of targets on a fast machine. ATB, Mark.