[libvirt] [PATCH 0/4] build: take full ownership of syntax-check from gnulib
Michal Privoznik
mprivozn at redhat.com
Mon Oct 7 14:31:29 UTC 2019
On 10/7/19 3:43 PM, Daniel P. Berrangé wrote:
> On Mon, Oct 07, 2019 at 03:03:51PM +0200, Michal Privoznik wrote:
>> On 10/3/19 12:51 PM, Daniel P. Berrangé wrote:
>>> Our syntax-check rule relies in various files imported during the gnulib
>>> bootstrap process. As we switch to meson & try to eliminate gnulib, we
>>> need to take ownership of syntax-check.
>>>
>>> This patch series follows the approach taken for libosinfo & other
>>> projects wrt syntax-check rules, but goes a step further and eliminates
>>> alot of baggage we don't care about & merges all logic into one file.
>>>
>>> Daniel P. Berrangé (4):
>>> build: import gnulib's syntax-check make rules
>>> build: remove all logic unrelated to syntax-check
>>> build: delete all syntax check rules we're skipping
>>> build: merge all syntax-check logic into one file
>>>
>>> Makefile.am | 7 +-
>>> bootstrap.conf | 4 -
>>> cfg.mk => build-aux/syntax-check.mk | 1141 +++++++++++++++++++++++++--
>>> build-aux/useless-if-before-free | 226 ++++++
>>> build-aux/vc-list-files | 113 +++
>>> 5 files changed, 1411 insertions(+), 80 deletions(-)
>>> rename cfg.mk => build-aux/syntax-check.mk (52%)
>>> create mode 100755 build-aux/useless-if-before-free
>>> create mode 100755 build-aux/vc-list-files
>>>
>>
>> Problem I'm seeing with these patches is that when I "make -j10 all
>> syntax-check check" (which is how I usually compile libvirt) then make does
>> not order targets properly and:
>
> That's odd. There's no dependancy between 'syntax-check' and 'all' that
> I know of even in current git master. We can run a syntax-check without
> forcing an 'all' build. 'check' has a dep on 'all' obviously so those
> two are ordered.
>
> IOW, I would have expect make to parallelize 'syntax-check' with execution
> of 'all' and 'check' already.
>
> I wonder what black magic is preventing this....
>
>> 1) I can see syntax-check output interleaved with 'all' output (or even
>> 'check'), but which is worse:
>>
>> 2) there must be a dependency missing somewhere, because after 'git clean
>> -fxd; ./autogen.sh --system' I see the following error:
>>
>>
>> make[4]: Entering directory
>> '/home/zippy/work/libvirt/libvirt.git/gnulib/lib'
>> GEN sys/ioctl.h
>> GEN arpa/inet.h
>> GEN sys/select.h
>> GEN pthread.h
>> GEN sys/socket.h
>> GEN sched.h
>> GEN stdio.h
>> GEN sys/stat.h
>> GEN string.h
>> GEN stdlib.h
>> GEN sys/time.h
>> GEN sys/socket.h
>> GEN sys/stat.h
>> GEN sys/types.h
>> mv: cannot stat 'string.h-t': No such file or directory
>> GEN sys/uio.h
>> make[4]: *** [Makefile:4311: string.h] Error 1
>> make[4]: *** Waiting for unfinished jobs....
>
> What distro do you get this on ? I can't reproduce that problem yet
This is gentoo, but I'm able to reproduce on rawhide too. The important
part is to enable parallel build (make -j10 or so).
Michal
More information about the libvir-list
mailing list