Pregenerated data for ICU library.
You can regenerate the litte-endian data in the following way:
- Download ICU source code: https://github.com/unicode-org/icu
- In
icu4c/source
directory run./configure
andmake
. - The resulting file will be located at
./data/out/tmp/icudt75l_dat.S
The simplest way to regenerate the big-endian data is to (like above) compile icu on a big-endian system and copy the data:
As most of our computers are not big-endian doing this in a docker container is simplest:
- Install docker engine and qemu
- Run
docker run -it --memory="16g" --cpus="8" --platform linux/s390x ubuntu:latest
In the S390x docker container or VM:
- Run
apt-get update
andapt-get install build-essential python3 python-is-python3 git
- Download ICU
git clone https://github.com/unicode-org/icu.git
- Checkout the version you want to build
- Change to the correct directory
cd icu/icu4c/source
- Make sure all scripts have the right permissions
chmod +x runConfigureICU configure install-sh
- Run
./runConfigureICU Linux
andmake
(this can take a while in a docker image...) - The resulting file will be located at
./data/out/tmp/icudt75b_dat.S
Motivation: ICU is using complicated two-stage build process that is hard to integrate to the build system of another project.
Reference: https://unicode-org.github.io/icu/userguide/icu4c/build.html#how-to-build-and-install-on-unix