qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Parallel make build fails on fast machine


From: Mark Cave-Ayland
Subject: Re: [Qemu-devel] Parallel make build fails on fast machine
Date: Mon, 8 Jul 2019 18:03:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2

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
>>>> <address@hidden> 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]