summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2020-06-23 23:08:37 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-07-16 22:28:40 +0100
commit31a7824665ccc90c8a7ff01a7edcafea64a4fcb2 (patch)
tree47f0373b138048313f4002929c6ed39688332580
parentcee8ab3d17ac01ed9de4e9fa74b1ad29aa9d695e (diff)
downloadpoky-31a7824665ccc90c8a7ff01a7edcafea64a4fcb2.tar.gz
icu: make filtered data generation optional, serial and off by default
Backported from master with two differences: 1. Move exit in do_make_icudata_class-target after big endian patch application (not required for master since new upstream icu includes the patch) 2. In do_install_append_class-target test for existence of .dat input file before calling icupkg icu data generation was found to be racy, and causig AB failures; making it serial and leaving it on is not an option as it regresses to several minutes. The specific bug is that rules.mk has: LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH ../bin/gencnval -s . -d ./out/build/icudt66l mappings/convrtrs.txt which creates a file and numerous rules like LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH  ../bin/genrb -s ./misc -d ./out/build/icudt67l -i ./out/build/icudt67l -k -q numberingSystems.txt which quietly read it. There is no prerequisite for the former to complete first. The race is extra complicated to fix as rules.mk is itself generated through a custom in-tree python tool. (From OE-Core rev: df4bfb154e7fce9645f5738aa04b3eb3ef5093fe) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit df89e8d1136fd406ba35ae573e2cb0cfc88c6aad) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-support/icu/icu.inc4
-rw-r--r--meta/recipes-support/icu/icu_66.1.bb6
2 files changed, 8 insertions, 2 deletions
diff --git a/meta/recipes-support/icu/icu.inc b/meta/recipes-support/icu/icu.inc
index 6d9728903d..670cbedbcb 100644
--- a/meta/recipes-support/icu/icu.inc
+++ b/meta/recipes-support/icu/icu.inc
@@ -59,7 +59,9 @@ do_install_append_class-target() {
59 # Use icupkg to re-generate it. 59 # Use icupkg to re-generate it.
60 if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then 60 if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
61 rm -f ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat 61 rm -f ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
62 icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat 62 if [ -f ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ]; then
63 icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
64 fi
63 fi 65 fi
64 66
65 # Remove build host references... 67 # Remove build host references...
diff --git a/meta/recipes-support/icu/icu_66.1.bb b/meta/recipes-support/icu/icu_66.1.bb
index a8096c1840..08254648e4 100644
--- a/meta/recipes-support/icu/icu_66.1.bb
+++ b/meta/recipes-support/icu/icu_66.1.bb
@@ -40,11 +40,15 @@ UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
40 40
41EXTRA_OECONF_append_libc-musl = " ac_cv_func_strtod_l=no" 41EXTRA_OECONF_append_libc-musl = " ac_cv_func_strtod_l=no"
42 42
43PACKAGECONFIG ?= ""
44PACKAGECONFIG[make-icudata] = ",,,"
45
43do_make_icudata_class-target () { 46do_make_icudata_class-target () {
44 cd ${S} 47 cd ${S}
45 rm -rf data 48 rm -rf data
46 cp -a ${WORKDIR}/data . 49 cp -a ${WORKDIR}/data .
47 patch -p1 < ${WORKDIR}/0001-Fix-big-endian-build.patch 50 patch -p1 < ${WORKDIR}/0001-Fix-big-endian-build.patch
51 ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
48 AR='${BUILD_AR}' \ 52 AR='${BUILD_AR}' \
49 CC='${BUILD_CC}' \ 53 CC='${BUILD_CC}' \
50 CPP='${BUILD_CPP}' \ 54 CPP='${BUILD_CPP}' \
@@ -56,7 +60,7 @@ do_make_icudata_class-target () {
56 LDFLAGS='${BUILD_LDFLAGS}' \ 60 LDFLAGS='${BUILD_LDFLAGS}' \
57 ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \ 61 ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \
58 ./runConfigureICU Linux --with-data-packaging=archive 62 ./runConfigureICU Linux --with-data-packaging=archive
59 oe_runmake ${PARALLEL_MAKE} 63 oe_runmake
60 install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat 64 install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
61} 65}
62 66