Hi Timo,
I'd like to do option A, but I'm not certain as to what steps to take to do so. Could you let me know where the code for this function is located, and what might need to be done to link it? I'm not terribly familiar with the linker, so I'm having a bit of trouble figuring out what exactly needs to be done for the rebuild.
Thanks,
- Tom Goerger - Email/Unix System Administrator *
- University of Minnesota Email: tmg@umn.edu *
- Operations, Infrastructure and Architecture Phone: 4-5804 *
- Internet Services Office: 626J WBOB *
On Sun, 25 Jan 2009, Timo Sirainen wrote:
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.