[PATCH] add build dependency on lxc_protocol.h to remote_daemon

Michal Prívozník mprivozn at redhat.com
Wed Mar 16 08:39:52 UTC 2022

On 3/14/22 15:58, Slater, Joseph wrote:
> I was really only wanting to make sure that both remote_driver and remote_daemon have access to lxc_protocol.h.  I am not an expert in meson builds but I think the only way to do that is have a loop outside of remote_daemon_generated and remote_driver_generated.  You could start with an empty remote_daemon_generated and append remote_xxx_generated after the foreach loop instead of initializing the way I did.
> So, your 1) is just a side-effect, not something I was explicitly seeking.

Hey, I'm no meson expert either, but one thing that I've noticed is that
with this patch I'm seeing more tasks that meson wants to run:

Without the patch: 1410
With the patch: 1447

(note, that your numbers may be different as they depend on what
features are enabled, but you should see the same increase in tasks)

My understanding was that we need only to order tasks not add new ones.
Now, looking at generated build.ninja I can see why:

libvirt.git $ grep "^build.*lxc_protocol.c.o:" build/build.ninja | cut
-d':' -f1
build src/libvirtd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtproxyd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtinterfaced.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtnetworkd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtnodedevd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtnwfilterd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtsecretd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtstoraged.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtxend.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtlxcd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtchd.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtqemud.p/meson-generated_.._remote_lxc_protocol.c.o
build src/virtvboxd.p/meson-generated_.._remote_lxc_protocol.c.o

Meson decided it's faster to compile remote_lxc_protocol.c multiple
times, for different daemons, each time with the same set of arguments
(not shown in my paste above), than to compile it just once. I'm sure
virqemud is going to be happy with understanding LXC driver protocol,
but I am not happy about that. Le sigh.

Pavel, since you introduced meson, can you please shed more light into
here? How should we set up ORDERING and not DEPENDENCY? In Makefile it's
as easy as:

  target: dependency | x y z


More information about the libvir-list mailing list