]> code.ossystems Code Review - openembedded-core.git/commitdiff
icu: backport fix for rare random genrb segmentation fault
authorMartin Jansa <Martin.Jansa@gmail.com>
Tue, 16 Feb 2021 23:01:30 +0000 (00:01 +0100)
committerSteve Sakoman <steve@sakoman.com>
Thu, 4 Mar 2021 14:19:50 +0000 (04:19 -1000)
* sometimes I've seen it also reporting "Bus error" instead of segmentation fault

* upstream bug report:
  https://unicode-org.atlassian.net/browse/ICU-21175

* on 80 core machine it failed 11 times in 1000 rebuilds of icu in various files:
  icu.019.stderr.compile:make[1]: *** [out/build/icudt66l/windowsZones.res] Segmentation fault
  icu.035.stderr.compile:make[1]: *** [out/build/icudt66l/supplementalData.res] Segmentation fault
  icu.095.stderr.compile:make[1]: *** [out/build/icudt66l/plurals.res] Segmentation fault
  icu.116.stderr.compile:make[1]: *** [out/build/icudt66l/curr/supplementalData.res] Segmentation fault
  icu.313.stderr.compile:make[1]: *** [out/build/icudt66l/supplementalData.res] Segmentation fault
  icu.415.stderr.compile:make[1]: *** [out/build/icudt66l/supplementalData.res] Segmentation fault
  icu.476.stderr.compile:make[1]: *** [out/build/icudt66l/metadata.res] Segmentation fault
  icu.495.stderr.compile:make[1]: *** [out/build/icudt66l/supplementalData.res] Segmentation fault
  icu.496.stderr.compile:make[1]: *** [out/build/icudt66l/supplementalData.res] Segmentation fault
  icu.505.stderr.compile:make[1]: *** [out/build/icudt66l/pluralRanges.res] Segmentation fault
  icu.756.stderr.compile:make[1]: *** [out/build/icudt66l/numberingSystems.res] Segmentation fault

* apply 0001-Fix-big-endian-build.patch in do_patch like this new patch

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-support/icu/icu/0002-ICU-21175-Add-cnvalias-as-a-dependency-of-misc_res.patch [new file with mode: 0644]
meta/recipes-support/icu/icu_66.1.bb

diff --git a/meta/recipes-support/icu/icu/0002-ICU-21175-Add-cnvalias-as-a-dependency-of-misc_res.patch b/meta/recipes-support/icu/icu/0002-ICU-21175-Add-cnvalias-as-a-dependency-of-misc_res.patch
new file mode 100644 (file)
index 0000000..d7ddf33
--- /dev/null
@@ -0,0 +1,24 @@
+From f2bc064e0d70ac068de4539d069bfab6cdccc48d Mon Sep 17 00:00:00 2001
+From: "Shane F. Carr" <shane@unicode.org>
+Date: Fri, 10 Jul 2020 14:28:22 -0500
+Subject: [PATCH] ICU-21175 Add cnvalias as a dependency of misc_res
+
+Upstream-Status: Backport [https://github.com/unicode-org/icu/commit/ee2d8b01034c3101de2bd58f9328daa076995e9e]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ data/BUILDRULES.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/BUILDRULES.py b/data/BUILDRULES.py
+index 2338afd1f7..63b6e09273 100644
+--- a/data/BUILDRULES.py
++++ b/data/BUILDRULES.py
+@@ -361,7 +361,7 @@ def generate_misc(config, io, common_vars):\r
+         RepeatedExecutionRequest(\r
+             name = "misc_res",\r
+             category = "misc",\r
+-            dep_targets = [],\r
++            dep_targets = [DepTarget("cnvalias")], # ICU-21175\r
+             input_files = input_files,\r
+             output_files = output_files,\r
+             tool = IcuTool("genrb"),\r
index 08254648e4b13495e6bb5be9873ef00ed0800d40..6ba88595dfaddcb765c7e8824da098d4a853085e 100644 (file)
@@ -21,10 +21,11 @@ BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${I
 DATA_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip"
 SRC_URI = "${BASE_SRC_URI};name=code \
            ${DATA_SRC_URI};name=data \
+           file://0001-Fix-big-endian-build.patch;patchdir=${WORKDIR} \
+           file://0002-ICU-21175-Add-cnvalias-as-a-dependency-of-misc_res.patch;patchdir=${WORKDIR} \
            file://filter.json \
            file://icu-pkgdata-large-cmd.patch \
            file://fix-install-manx.patch \
-           file://0001-Fix-big-endian-build.patch;apply=no \
            file://0001-icu-Added-armeb-support.patch \
            file://CVE-2020-10531.patch \
            "
@@ -47,7 +48,6 @@ do_make_icudata_class-target () {
     cd ${S}
     rm -rf data
     cp -a ${WORKDIR}/data .
-    patch -p1 < ${WORKDIR}/0001-Fix-big-endian-build.patch
     ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
     AR='${BUILD_AR}' \
     CC='${BUILD_CC}' \