[next] telepathy-glib: Fix a race in _gen/reentrant-methods.list

Jonny Lamb jonny at kemper.freedesktop.org
Fri Aug 31 03:18:52 PDT 2012


Module: telepathy-glib
Branch: next
Commit: fbacc9202217a86da303df05d881bfefe6385bd9
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=fbacc9202217a86da303df05d881bfefe6385bd9

Author: Ross Burton <ross.burton at intel.com>
Date:   Wed Jul 25 12:58:16 2012 +0100

Fix a race in _gen/reentrant-methods.list

Very occasionally, a parallel build will fail like this:

| Making all in telepathy-glib
| make[2]: Entering directory `/buildarea1/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/telepathy-glib-0.19.2-r0/telepathy-glib-0.19.2/telepathy-glib'
| /bin/mkdir -p _gen
| ( cd . && cat versions/0.7.0.abi [...] versions/0.19.2.abi  ) | \
| 		/bin/grep '^tp_cli_.*_run_.*' > _gen/reentrant-methods.list.tmp
| /bin/sh: line 1: _gen/reentrant-methods.list.tmp: No such file or directory
| make[2]: *** [_gen/reentrant-methods.list] Error 1

It's doing the mkdir and the subshell in parallel, when the mkdir should be done
first.  Add an explicit dependency on spec-stamp to reentrant-methods.list to
ensure the ordering.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=52480
Reviwewed-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
Reviwewed-by: Simon McVittie <simon.mcvittie at collabora.co.uk>

---

 telepathy-glib/codegen.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/telepathy-glib/codegen.am b/telepathy-glib/codegen.am
index 26caaef..6ad3ec5 100644
--- a/telepathy-glib/codegen.am
+++ b/telepathy-glib/codegen.am
@@ -149,7 +149,7 @@ _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincl
 # Grab a list of re-entrant tp_cli_*_run_* methods we are committed to
 # generating for backwards compatibility.
 # grep --no-filename is not portable :-(
-_gen/reentrant-methods.list: $(ABI_LISTS) codegen.am
+_gen/reentrant-methods.list: _gen/spec-stamp $(ABI_LISTS) codegen.am
 	$(AM_V_GEN)( cd $(srcdir) && cat $(ABI_LISTS) ) | \
 		$(GREP) '^tp_cli_.*_run_.*' > $@.tmp
 	@mv $@.tmp $@



More information about the telepathy-commits mailing list