Hello funkypunky drunky,
this is an example how the script rewrite the command line when the dovecot-imap binary is being linked:
Makefile calls libtool with:
../../libtool --tag=CC --mode=link /usr/local/src/mail/src/bin/dovecot-cc -qlanglvl=ansi -g -export-dynamic -bexpall -brtl -L/usr/local/lib -L/usr/local/lib -o imap cmd-append.o cmd-capability.o cmd-check.o cmd-close.o cmd-copy.o cmd-create.o cmd-delete.o cmd-examine.o cmd-expunge.o cmd-fetch.o cmd-idle.o cmd-list.o cmd-logout.o cmd-lsub.o cmd-namespace.o cmd-noop.o cmd-rename.o cmd-search.o cmd-select.o cmd-sort.o cmd-status.o cmd-store.o cmd-subscribe.o cmd-thread.o cmd-uid.o cmd-unselect.o cmd-unsubscribe.o client.o commands.o commands-util.o imap-expunge.o imap-fetch.o imap-fetch-body.o imap-messageset.o imap-search.o imap-sort.o imap-sync.o imap-thread.o mail-storage-callbacks.o main.o namespace.o ../lib-storage/register/libstorage-register.a ../../src/lib-storage/index/maildir/libstorage_maildir.a ../../src/lib-storage/index/mbox/libstorage_mbox.a ../../src/lib-storage/index/dbox/libstorage_dbox.a ../../src/lib-storage/index/libstorage_index.a ../../src/lib-index/libindex.a ../lib-storage/libstorage.a ../lib-storage/subscription-file/libstorage_subscription_file.a ../lib-imap/libimap.a ../lib-mail/libmail.a ../lib-dict/libdict.a ../lib-charset/libcharset.a ../lib/liblib.a ../lib/mountpoint.o -liconv
libtool calls dovecot-cc with:
/usr/local/src/mail/src/bin/dovecot-cc -qlanglvl=ansi -g -bexpall -brtl -o imap cmd-append.o cmd-capability.o cmd-check.o cmd-close.o cmd-copy.o cmd-create.o cmd-delete.o cmd-examine.o cmd-expunge.o cmd-fetch.o cmd-idle.o cmd-list.o cmd-logout.o cmd-lsub.o cmd-namespace.o cmd-noop.o cmd-rename.o cmd-search.o cmd-select.o cmd-sort.o cmd-status.o cmd-store.o cmd-subscribe.o cmd-thread.o cmd-uid.o cmd-unselect.o cmd-unsubscribe.o client.o commands.o commands-util.o imap-expunge.o imap-fetch.o imap-fetch-body.o imap-messageset.o imap-search.o imap-sort.o imap-sync.o imap-thread.o mail-storage-callbacks.o main.o namespace.o ../lib/mountpoint.o -L/usr/local/lib ../lib-storage/register/libstorage-register.a ../../src/lib-storage/index/maildir/libstorage_maildir.a ../../src/lib-storage/index/mbox/libstorage_mbox.a ../../src/lib-storage/index/dbox/libstorage_dbox.a ../../src/lib-storage/index/libstorage_index.a ../../src/lib-index/libindex.a ../lib-storage/libstorage.a ../lib-storage/subscription-file/libstorage_subscription_file.a ../lib-imap/libimap.a ../lib-mail/libmail.a ../lib-dict/libdict.a ../lib-charset/libcharset.a ../lib/liblib.a -liconv
dovecot-cc calls /usr/bin/xlc with:
/usr/bin/xlc -qlanglvl=ansi -g -bexpall -brtl -o imap cmd-append.o cmd-capability.o cmd-check.o cmd-close.o cmd-copy.o cmd-create.o cmd-delete.o cmd-examine.o cmd-expunge.o cmd-fetch.o cmd-idle.o cmd-list.o cmd-logout.o cmd-lsub.o cmd-namespace.o cmd-noop.o cmd-rename.o cmd-search.o cmd-select.o cmd-sort.o cmd-status.o cmd-store.o cmd-subscribe.o cmd-thread.o cmd-uid.o cmd-unselect.o cmd-unsubscribe.o client.o commands.o commands-util.o imap-expunge.o imap-fetch.o imap-fetch-body.o imap-messageset.o imap-search.o imap-sort.o imap-sync.o imap-thread.o mail-storage-callbacks.o main.o namespace.o ../lib/mountpoint.o -L/usr/local/lib ../lib-storage/register/libstorage-register.a ../../src/lib-storage/index/maildir/libstorage_maildir.a ../../src/lib-storage/index/mbox/libstorage_mbox.a ../../src/lib-storage/index/dbox/libstorage_dbox.a ../../src/lib-storage/index/libstorage_index.a ../../src/lib-index/libindex.a ../lib-storage/libstorage.a ../lib-storage/subscription-file/libstorage_subscription_file.a ../lib-imap/libimap.a ../lib-mail/libmail.a ../lib-dict/libdict.a ../lib-charset/libcharset.a ../lib/liblib.a -liconv ../lib-sql/libsql.a -bE:.libs/libstorage-register.exp -bE:.libs/libstorage_maildir.exp -bE:.libs/libstorage_mbox.exp -bE:.libs/libstorage_dbox.exp -bE:.libs/libstorage_index.exp -bE:.libs/libindex.exp -bE:.libs/libstorage.exp -bE:.libs/libstorage_subscription_file.exp -bE:.libs/libimap.exp -bE:.libs/libmail.exp -bE:.libs/libdict.exp -bE:.libs/libcharset.exp -bE:.libs/liblib.exp -bE:.libs/libsql.exp
Notice the "-bE:..." lines. These lines are appended by dovecot-cc to initialize all globale symbols defined in libraries used to link imap. The .exp files are generate on the fly by dovecot-cc.
The Library ../lib-sql/libsql.a was also being inserted, because of known dependencies.
Regards, Ralf
funkypunky drunky schrieb:
Hello Ralf, Ohh thanks for your reply and i start to understand what is going on. You tell everything very well. It is amazing. After i read your mail, I export a variable export LDFLAGS="-Wl,-brtl" and now i find shared object files (.so) in their proper places after compilation. At first glance everything seems ok but when i tried to start dovecot Edlopen(/usr/local/lib/dovecot/imap/lib10_quota_plugin.so) failed: rtld: 0712-001 Symbol i_malloc was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol i_strdup was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol default_pool was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol mail_storage_get_mailbox_path was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol i_info was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol mountpoint_get was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. rtld: 0712-001 Symbol i_error was referenced from module /usr/local/lib/dovecot/imap/lib10_quota_plugin.so(), but a runtime definition of the symbol was not found. Additional errors occurred but are not reported. Error: imap dump-capability process returned 89
This symbols are not found. Now i get happy that i see the same error message as you but the thing that i cannot understand these .exp files. I have these exp files in their places, and they are created by aix linker. (I am using aix linker. IBM doesnt advice using gnu linker http://www-128.ibm.com/developerworks/aix/library/au-gnu.html) ./dovecot-1.0.rc28/src/plugins/acl/.libs/lib01_acl_plugin.exp ./dovecot-1.0.rc28/src/plugins/convert/.libs/lib20_convert_plugin.exp ./dovecot-1.0.rc28/src/plugins/quota/.libs/lib10_quota_plugin.exp ./dovecot-1.0.rc28/src/plugins/imap-quota/.libs/lib11_imap_quota_plugin.exp ./dovecot-1.0.rc28 /src/plugins/lazy-expunge/.libs/lib02_lazy_expunge_plugin.exp ./dovecot-1.0.rc28/src/plugins/mail-log/.libs/lib20_mail_log_plugin.exp ./dovecot-1.0.rc28/src/plugins/trash/.libs/lib11_trash_plugin.exp Do u mean that i have to point these exp files with linker flag -bexpall . From your script i can not understand. Maybe you can give an example with export LDFLAGS="bexpall bla bla" Thanx and best regards.
--
Dipl.-Inform. (FH) Ralf Becker Rechenzentrum (r/ft) der FH Trier (Network|Mail|Web|Firewall) University of applied sciences Administrator Schneidershof, D-54293 Trier
Mail: beckerr@fh-trier.de Fon: +49 651 8103 499 WWW: http://www.fh-trier.de/~beckerr Fax: +49 651 8103 214 PGP: http://www.fh-trier.de/~beckerr/pgp ICQ: <available>
Wenn Gott gewollt haette, dass E-Mail in HTML geschrieben wuerden, endeten Gebete traditionell mit </amen>. (Tom Listen)