On 6/23/20 2:08 PM, Alexander Kanavin wrote:
> 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.
> 
> Signed-off-by: Alexander Kanavin <[email protected]>
> ---
>  meta/recipes-support/icu/icu_67.1.bb | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-support/icu/icu_67.1.bb 
> b/meta/recipes-support/icu/icu_67.1.bb
> index 5814fa41bd..9e8091ba01 100644
> --- a/meta/recipes-support/icu/icu_67.1.bb
> +++ b/meta/recipes-support/icu/icu_67.1.bb
> @@ -120,7 +120,11 @@ UPSTREAM_CHECK_URI = 
> "https://github.com/unicode-org/icu/releases";
>  
>  EXTRA_OECONF_append_libc-musl = " ac_cv_func_strtod_l=no"
>  
> +PACKAGECONFIG ?= ""
> +PACKAGECONFIG[make-icudata] = ",,,"

maybe calling it custom-icudata is appropriate. This option perhaps
should be enabled by default with a minimum filter, which is to enable
en_US perhaps, it helps integrate the external build processes that is
in place where systems depend on icudata and don't want all 20M of it in
image. It would be good for us to offer a tested way to custom build
this data.

but I am ok to live with this workaround until perhaps this issue is
fixed upstream amicably.

> +
>  do_make_icudata_class-target () {
> +    ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
>      cd ${S}
>      rm -rf data
>      cp -a ${WORKDIR}/data .
> @@ -135,7 +139,7 @@ do_make_icudata_class-target () {
>      LDFLAGS='${BUILD_LDFLAGS}' \
>      ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \
>      ./runConfigureICU Linux --with-data-packaging=archive
> -    oe_runmake ${PARALLEL_MAKE}
> +    oe_runmake
>      install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat 
> ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
>  }
>  
> 
> 
> 
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#139859): 
https://lists.openembedded.org/g/openembedded-core/message/139859
Mute This Topic: https://lists.openembedded.org/mt/75069298/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to