I found the solution or at least a workaround.
For a reason that I could not determine, ICU fails to load its data (embedded in libicudata.so.52
) at startup (when cross-compiled for ARM using Linaro GCC toolchain).
Digging into ICU documentation I discovered that I could compile ICU to package data in different ways, and I decided to package them in standard files. The configuration of ICU cross-compilation is done this way:
./configure --host=arm-linux-gnueabihf --prefix=/opt/icu
--disable-samples --disable-tests
--with-cross-build=/home/morix/devel/icupc/source
--with-data-packaging=files
At run-time I have then to set my environment variable ICU_DATA
to point to the data folders (which in my case is /opt/icu/share/icu/52.1
) and the magic is done: ICU runs fine (icuinfo
tool terminates with ICU Initialization returned: U_ZERO_ERROR
which indicates success).