After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 680374 - generation of vapi is not safe with make -j
generation of vapi is not safe with make -j
Status: RESOLVED FIXED
Product: NetworkManager
Classification: Platform
Component: general
git master
Other All
: Normal normal
: ---
Assigned To: Dan Williams
Dan Williams
Depends on:
Blocks:
 
 
Reported: 2012-07-21 14:35 UTC by Allison Karlitskaya (desrt)
Modified: 2012-07-23 12:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
build: declare dependency between vapi files (1.06 KB, patch)
2012-07-21 14:37 UTC, Allison Karlitskaya (desrt)
committed Details | Review

Description Allison Karlitskaya (desrt) 2012-07-21 14:35:29 UTC
The Makefile.vapigen used by NetworkManager is perfectly willing to build multiple vapi files in parallel.  This is a problem because the two vapi files generated by NetworkManager have an (undeclared) dependency.

The result is that make -j fails when the process of building the second one fails to find the first one (because it is building at the same time).

desrt@moonpix:~/jhbuild/checkout/NetworkManager/vapi$ make -j
/home/desrt/jhbuild/install/bin/vapigen-0.18  --library libnm-util --metadatadir .    ../libnm-util/NetworkManager-1.0.gir
/home/desrt/jhbuild/install/bin/vapigen-0.18  --library libnm-glib --metadatadir . --vapidir . --girdir ../libnm-util  ../libnm-glib/NMClient-1.0.gir
error: Package `libnm-util' not found in specified Vala API directories or GObject-Introspection GIR directories
Generation failed: 1 error(s), 0 warning(s)
make: *** [libnm-glib.vapi] Error 1
make: *** Waiting for unfinished jobs....
Comment 1 Allison Karlitskaya (desrt) 2012-07-21 14:37:05 UTC
Created attachment 219384 [details] [review]
build: declare dependency between vapi files

Unbreak 'make -j' by declaring the dependency that exists between the
two generated vapi files (forcing building of the second one to wait
until after the first one has been built).
Comment 2 Jiri Klimes 2012-07-23 08:21:41 UTC
Pushed as aa72d272efb8e74b5ae32b0eb39200d5d2a37910
Thanks!