icu: fix install race

ICU was invoking install-local twice in parallel which can lead to install
failures as one install deletes files the other is attempting to chown.

(From OE-Core rev: 1dd92fbdc030bee30a0c5b233f7b61ac0cb2b459)

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 2015-10-09 17:50:41 +01:00 committed by Richard Purdie
parent b1d0aab832
commit adbbab7db0
2 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,48 @@
The generic recursive target calls target-local so also adding it to the
dependency list results in races due to install-local being executed twice in
parallel. For example, install-manx can fail if the two install processes race
and one process tries to chown a file that the other process has just deleted.
Also install-manx should be a phony target, and for clarity use $^ instead of $?
in the install command.
Upstream-Status: Pending
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/Makefile.in b/Makefile.in
index 9db6c52..3441afa 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -71,7 +71,7 @@ EXTRA_DATA =
## List of phony targets
.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \
-install-recursive clean clean-local clean-recursive distclean \
+install-recursive install-manx clean clean-local clean-recursive distclean \
distclean-local distclean-recursive doc dist dist-local dist-recursive \
check check-local check-recursive clean-recursive-with-twist install-icu \
doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \
@@ -82,10 +82,10 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist
## List of standard targets
all: all-local all-recursive
-install: install-recursive install-local
+install: install-recursive
clean: clean-recursive-with-twist clean-local
-distclean : distclean-recursive distclean-local
-dist: dist-recursive dist-local
+distclean : distclean-recursive
+dist: dist-recursive
check: all check-recursive
check-recursive: all
xcheck: all xcheck-recursive
@@ -352,7 +352,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
install-manx: $(MANX_FILES)
$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION)
config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
cd $(top_builddir) \

View File

@ -11,6 +11,7 @@ ICU_PV = "${@icu_download_version(d)}"
BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/icu4c-${ICU_PV}-src.tgz"
SRC_URI = "${BASE_SRC_URI} \
file://icu-pkgdata-large-cmd.patch \
file://fix-install-manx.patch \
"
SRC_URI_append_class-target = "\