I guess you were using Sun compiler/linker? I don't know how to do a)
in it (well, actually I don't know how to do it in any linker, usually
they don't have such optimizations). Anyway the code is in src/lib/
strfuncs.c, just copy&paste it to some .c file in src/plugins/acl/
On Jan 27, 2009, at 11:53 AM, Thomas M Goerger wrote:
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 foundYour 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.