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) u_strFromUTF8Lenient_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_errorName_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_cleanup_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ucasemap_close_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_strToUTF8WithSub_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ucasemap_open_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ld: fatal: symbol referencing errors. No output written to test-fts-icu collect2: error: ld returned 1 exit status
The workaround is easy: to add -licuuc to LDFLAGS, however it would be great if dovecot builds without any workarounds needed.
Thank you.
-- +-------------------------------------------+ | Marcel Telka e-mail: marcel@telka.sk | | homepage: http://telka.sk/ | +-------------------------------------------+
On 29/03/2025 15:56 EET 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) u_strFromUTF8Lenient_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_errorName_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_cleanup_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ucasemap_close_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) u_strToUTF8WithSub_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ucasemap_open_77 .libs/fts-icu.o (symbol belongs to implicit dependency /usr/lib/amd64/libicuuc.so.77) ld: fatal: symbol referencing errors. No output written to test-fts-icu collect2: error: ld returned 1 exit status
The workaround is easy: to add -licuuc to LDFLAGS, however it would be great if dovecot builds without any workarounds needed.
Thank you.
Since 2.4 is already out, 2.3.21.1 is pretty much in maintenance mode, especially in terms of adding new library support to it.
Aki
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).
participants (3)
-
Aki Tuomi
-
Marcel Telka
-
Stuart Henderson