runtime: Cannot get symbol ucol_setMaxVariable_50 from libicui18n
After following the steps here, https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.103-linux-arm64-binaries. I am getting the following exception when running:
dotnet --version
Cannot get symbol ucol_setMaxVariable_50 from libicui18n
Error: /lib64/libicui18n.so.50: undefined symbol: ucol_setMaxVariable_50
[1] 8639 abort dotnet --version
Environment:
- Raspberry Pi 3B+
- Micro Center 32GB microSDHC Card Class 10
- Clean install of Centos aarch64 RPI Minimal 4
name -a
Linux centosraspberrypi 5.4.72-v8.1.el7 dotnet/sdk
#1 SMP PREEMPT Wed Oct 21 17:35:36 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 3
- Comments: 44 (25 by maintainers)
@tarekgh, I can’t thank you enough for your assistance and time spent in this issue 🥇.
It was very good to connect with you and I can say I learned a lot. I will try with a bigger card, that might be the problem.
Abe
I think the only step you couldn’t do is what I mentioned in my comment https://github.com/dotnet/runtime/issues/57983#issuecomment-907548411. In my case, although took long time but was successfully completed and helped in compiling ICU v53 after that. The only difference I had is my micro SD card I used was 64 GB and I used Aluminum Heat Sink
@abarberenaCPDS please note that CentOS 7 is not supported for arm/arm64. See the support matrix here: https://github.com/dotnet/core/blob/main/release-notes/5.0/5.0-supported-os.md. arm/arm64 is only supported on Ubuntu, Debian and Alpine. The reason is that we cross build for arm/arm64 distros on x64 devices and our scripts to generate rootfs don’t support targeting redhat based distros. The distros that we target use newer libc / icu / etc. So while things might work if you upgrade the libc on CentOS 7 and build / install a newer libicu, replacing libc in a distro is a potential issue for some low level OS functionality where it is expected that libc and some other libraries match.
another idea to work around this is to use the ICU app-local feature
Include the following in your csproj:
I’m getting the same issue.
@abarberenaCPDS
https://gist.github.com/Sunlighter/fe602d2a090e64a01c3369fe7d7d7325
This worked for me.