-
Notifications
You must be signed in to change notification settings - Fork 20
Closed
Description
icu 76.1 is recently released https://github.com/unicode-org/icu/releases/tag/release-76-1
and yaz-icu in yaz 5.34.2 fails to compile (fails to link) like:
make[1]: Entering directory '/builddir/build/BUILD/yaz-5.34.2-build/yaz-5.34.2/util'
/bin/sh ../libtool --tag=CC --mode=link gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/include/hiredis -D_FILE_OFFSET_BITS=64 -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -o yaz-icu yaz-icu.o ../src/libyaz_icu.la ../src/libyaz.la -licui18n -lexslt -lxslt -lxml2 -lpthread
libtool: link: gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/include/hiredis -D_FILE_OFFSET_BITS=64 -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,pack-relative-relocs -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -o .libs/yaz-icu yaz-icu.o ../src/.libs/libyaz_icu.so /builddir/build/BUILD/yaz-5.34.2-build/yaz-5.34.2/src/.libs/libyaz.so ../src/.libs/libyaz.so -lgnutls -lmemcached -lmemcachedutil -lsasl2 -lhiredis -licui18n -lexslt -lxslt -lxml2 -lpthread
/usr/bin/ld: /tmp/ccjSipRz.ltrans0.ltrans.o: undefined reference to symbol 'ucnv_getDefaultName_76'
/usr/bin/ld: /usr/lib64/libicuuc.so.76: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:532: yaz-icu] Error 1
make[1]: Leaving directory '/builddir/build/BUILD/yaz-5.34.2-build/yaz-5.34.2/util'
ucnv_getDefaultName symbol is included in libicuuc.so, but yaz-icu linkage command line does not have -licuuc .
Actually, yaz-icu linkage uses pkgconfig for icu-i18n :
https://github.com/indexdata/m4/blob/3fe661bb36481dd02d4f43058ca3ee9174e1e85f/ac_check_icu.m4#L23-L29
and previously icu-i18n.pc had Requires: icu-uc, but this changed with iu 76.1:
unicode-org/icu@199bc82
https://unicode-org.atlassian.net/browse/ICU-22610
Now yaz-icu must explicitly use pkg-config --libs icu-i18n icu-uc .
Metadata
Metadata
Assignees
Labels
No labels