summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2009-10-21 12:28:00 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2009-10-21 12:34:16 +0300
commitee8769ddaff1b69bfd1a959c3c58a96416736890 (patch)
tree0f5aa2ab82056b5363c996342099a51eb251f8c0 /mkspecs
parent4b678fe08ec8de5a34d8b2ec2d9ec44276424636 (diff)
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
Diffstat (limited to 'mkspecs')
-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 7fada1eec2..634fafaee4 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