summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2009-10-21 09:28:00 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2009-10-21 09:34:16 (GMT)
commitee8769ddaff1b69bfd1a959c3c58a96416736890 (patch)
tree0f5aa2ab82056b5363c996342099a51eb251f8c0
parent4b678fe08ec8de5a34d8b2ec2d9ec44276424636 (diff)
downloadQt-ee8769ddaff1b69bfd1a959c3c58a96416736890.zip
Qt-ee8769ddaff1b69bfd1a959c3c58a96416736890.tar.gz
Qt-ee8769ddaff1b69bfd1a959c3c58a96416736890.tar.bz2
Fixed .make.cache write collision on symbian-sbsv2 builds
If a project was built for more than one target with single sbs command, .make.cache generation could sometime fail because multiple jobs attempted to write into it simultaneously. Now only one of the specified targets will be used to generate .make.cache, making collisions impossible. Reviewed-by: Janne Anttila
-rw-r--r--mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm9
1 files changed, 9 insertions, 0 deletions
diff --git a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
index 7fada1e..634fafa 100644
--- a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
+++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
@@ -9,6 +9,14 @@
include $(FLMHOME)/metaflm.mk
+SINGLETON:=$(call sanitise,TSTORE_SINGLETON_$(EXTENSION_ROOT))
+
+ifeq ($($(SINGLETON)),)
+# Prevent duplicate targets from being created, as that can lead to build breaks
+# in multiprocessor systems if two or more targets try to write to .make.cache at
+# the same time.
+$(SINGLETON):=1
+
STORE_BUILD_TARGET:=$(call sanitise,TSTORE_BUILD_$(PLATFORM_PATH)_$(CFG_PATH)_$(EXTENSION_ROOT))
CACHE_FILENAME:=$(EXTENSION_ROOT)/.make.cache
@@ -37,4 +45,5 @@ endef
$(eval $(qmake_store_build))
$(eval $(call GenerateStandardCleanTarget,$(CACHE_FILENAME),''))
+endif