Thanks to visit codestin.com
Credit goes to github.com

Skip to content

yaz-icu 5.34.2 fails to compile with icu 76.1 #131

@mtasaka

Description

@mtasaka

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions