glib-2.0: fix race in parallel builds

There is a race condition in the makefile that can result in build failures like
this in parallel builds:

| ./gdbus-test-codegen-generated.h:7:0: error: unterminated #ifndef
|  #ifndef __GDBUS_TEST_CODEGEN_GENERATED_H__

Fix the rules to stop this happening.

(From OE-Core rev: 97ccd2b841c9dc598dbe39162f335bcde48a7c26)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2014-02-04 16:15:14 +00:00 committed by Richard Purdie
parent 4217302c29
commit bc7a5b9442
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,54 @@
Upstream-Status: Submitted
Signed-off-by: Ross Burton <ross.burton@intel.com>
From a047a0270ee5faf1d9d6080cbc613defdf52baea Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 4 Feb 2014 13:15:08 +0000
Subject: [PATCH] gio/tests: fix race when generating code
There is a race condition in the makefile that can result in build failures like this in parallel builds:
| ./gdbus-test-codegen-generated.h:7:0: error: unterminated #ifndef
| #ifndef __GDBUS_TEST_CODEGEN_GENERATED_H__
This is because a rule like this:
x.c x.h: prerequisites
@commands
doesn't consider x.c and x.h together. Instead, it expands to two rules, one to
generate x.c and one to generate x.h, which happen to run the same commands. In
the worst case they execute in parallel, overwriting each other's output.
Signed-off-by: Ross Burton <ross.burton@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=723616
---
gio/tests/Makefile.am | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am
index 0beb239..270faf6 100644
--- a/gio/tests/Makefile.am
+++ b/gio/tests/Makefile.am
@@ -436,7 +436,7 @@ gmenumodel_SOURCES = $(gdbus_sessionbus_sources) gmenumode
gnotification_SOURCES = $(gdbus_sessionbus_sources) gnotification.c gnotification-server.h gnotification-server.c
gdbus-test-codegen.o: gdbus-test-codegen-generated.h
-gdbus-test-codegen-generated.h gdbus-test-codegen-generated.c: test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
+gdbus-test-codegen-generated.h: test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
$(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
$(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \
@@ -455,6 +455,8 @@ gdbus-test-codegen-generated.h gdbus-test-codegen-generated.c: test-codegen.xml
--annotate "org.project.Bar::TestSignal[array_of_strings]" Key8 Value8 \
$(srcdir)/test-codegen.xml \
$(NULL)
+gdbus-test-codegen-generated.c: gdbus-test-codegen-generated.h
+ @: # Generated as side-effect of .h
EXTRA_DIST += test-codegen.xml
CLEANFILES += gdbus-test-codegen-generated.[ch] gdbus-test-codegen-generated-doc-*.xml
--
1.7.10.4

View File

@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://ptest-dbus.patch \
file://ptest-paths.patch \
file://gtest-skip-fixes.patch \
file://gio-test-race.patch \
"
SRC_URI_append_class-native = " file://glib-gettextize-dir.patch"