Unable to build Cyrus

ellie timoney ellie at fastmail.com
Thu Jan 23 18:31:38 EST 2020

Hi Daniel,

On Thu, Jan 23, 2020, at 10:34 PM, Daniel Gultsch wrote:
> /usr/bin/ld: warning: libicui18n.so.57, needed by
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libxml2.so,
> may conflict with libicui18n.so.64
> /usr/bin/ld: warning: libicuuc.so.57, needed by
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libxml2.so,
> may conflict with libicuuc.so.64
> /usr/bin/ld: warning: libicudata.so.57, needed by
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libxml2.so,
> may conflict with libicudata.so.64

For starters, I would ignore these warnings for now, unless it turns out to be an actual problem.  

What's happening here is you have libicu v64 installed via cyruslibs, and you have libxml installed from a system package.  libxml depends on libicu, which means you also have the system package of libicu, which in this case is v57.  (I guess you're on something akin to Debian Jessie, cause I am, and I also have libicu v57 installed for libxml.)  You will see these warnings if the link order is not quite right, or if the link order is correct but the linker is linking stuff it doesn't need to.

It would be interesting to see what happens if you add "-Wl,--as-needed" to your LDFLAGS -- this is very useful for shaking out link ordering problems -- but I don't (yet) think that's the cause of the problem below.  Some platforms have this linker option enabled by default, but Debian Jessie doesn't.

> imap/ctl_zoneinfo.o: In function `main':
> /root/cyrus-imapd/imap/ctl_zoneinfo.c:232: undefined reference to
> `xmlGetNextNode'
> /root/cyrus-imapd/imap/ctl_zoneinfo.c:234: undefined reference to
> `xmlGetNextNode'
> /root/cyrus-imapd/imap/ctl_zoneinfo.c:240: undefined reference to
> `xmlGetNextNode'
> /root/cyrus-imapd/imap/ctl_zoneinfo.c:251: undefined reference to
> `xmlGetNextNode'
> /root/cyrus-imapd/imap/ctl_zoneinfo.c:253: undefined reference to
> `xmlGetNextNode'
> collect2: error: ld returned 1 exit status
> Makefile:3639: recipe for target 'imap/ctl_zoneinfo' failed

This is where things get interesting.  xmlGetNextNode is a fallback we provide for when libxml doesn't provide xmlFirstElementChild (in which case we #define xmlFirstElementChild to call our own xmlGetNextNode).  So it sounds like configure might be confused about whether your libxml provides xmlFirstElementChild or not...  Do you happen to have multiple versions of libxml installed, I wonder?

If you remove the following files from your tree:


(i.e. the generated files for the ctl_zoneinfo program) and then run "make V=1 imap/ctl_zoneinfo" to rebuild just this program, what commands are being run to rebuild this file?  The V=1 ensures the full commands are output, overriding --enable-silent-rules.

The contents of your config.h and config.log would also be very helpful, but please check/sanitise them carefully for private information before attaching them.  Feel free to send them directly to me (ellie at fastmail dot com) if you'd rather not share them with the whole list.



More information about the Info-cyrus mailing list