On Linux, libGRM.so requires ICU symbols but does not link to libicuuc.
Tested with:
https://download.opensuse.org/repositories/science:/gr-framework/xUbuntu_24.04/amd64/gr_0.73.14-1_amd64.deb
Reproduction
-
ICU is not listed by ldd:
ldd /usr/gr/lib/libGRM.so
# libicuuc.so is not shown
-
Loading with dlopen fails:
#include <dlfcn.h>
#include <stdio.h>
int main() {
dlopen("/usr/gr/lib/libGRM.so", RTLD_LAZY | RTLD_GLOBAL) ? puts("ok") : puts(dlerror());
}
Result:
/usr/gr/lib/libGRM.so: undefined symbol: UCNV_FROM_U_CALLBACK_SUBSTITUTE_74
-
Workaround:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libicuuc.so.74 ./test_grm_load
# ok
Request
Please link libGRM.so with ICU (libicuuc) at build time.