On Fri, 2009-01-23 at 12:48 -0600, Thomas M Goerger wrote:
Jan 23 12:46:57 mars.tc.umn.edu imap(dump-capability): : [ID 817342 mail.error] dlopen(/opt/dovecot1.8/lib/dovecot/imap/lib01_acl_plugin.so) failed: ld.so.1: imap: fatal: relocation error: file /opt/dovecot1.8/lib/dovecot/imap/lib01_acl_plugin.so: symbol i_strcmp_p: referenced symbol not found
Your linker was trying to be smart and didn't include i_strcmp_p() function in imap binary, because it wasn't used anywhere in the imap binary itself. ACL plugin needs it, but since linker dropped it it's no longer there. The possibilities for how to fix this would be:
a) Modify linker flags so that it doesn't drop all these unused functions.
b) Move the i_strcmp_p() code to ACL plugin.
c) Use i_strcmp_p() somewhere in IMAP code.
d) Make liblib.a a shared library instead so that the linker won't try to drop useful stuff.
I think for now you should go with a), b) or c). The long term solution will be d), but I wasn't really planning on doing it soon.. Hmm. Maybe for v1.3.