On 2025-03-29, Marcel Telka via dovecot <dovecot@dovecot.org> wrote:
Hi,
dovecot 2.3.21.1 fails to build with ICU 77. There are also reports it does not build with ICU 76 for the same reason: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284832
There is no issue when built with ICU 75.
The failure is this:
/bin/bash ../../libtool --tag=CC --mode=link /usr/gcc/14/bin/gcc -std=gnu99 -m64 -O3 -Wno-incompatible-pointer-types -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -mfunction-return=keep -mindirect-branch=keep -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -I/usr/openssl/3/include -no-undefined -m64 -o test-fts-icu test-fts-icu.o fts-icu.lo -licui18n ../lib-test/libtest.la ../lib/liblib.la -lsocket -lnsl -lsendfile libtool: link: /usr/gcc/14/bin/gcc -std=gnu99 -m64 -O3 -Wno-incompatible-pointer-types -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -mfunction-return=keep -mindirect-branch=keep -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -I/usr/openssl/3/include -m64 -o test-fts-icu test-fts-icu.o .libs/fts-icu.o -licui18n ../lib-test/.libs/libtest.a ../lib/.libs/liblib.a -lsocket -lnsl -lsendfile Undefined first referenced symbol in file ucasemap_utf8ToLower_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) .. The workaround is easy: to add -licuuc to LDFLAGS, however it would be great if dovecot builds without any workarounds needed.
FWIW, 2.3.21.1 builds on OpenBSD with ICU 76.1 enabled without extra -l. I haven't tried with ICU 77 yet.
(2.4 is no good for me until I can figure out a way to replace the lost functionality).