Make errors with Cyrus::IMAP

H. Scott Brown hs.brown at smius.com
Mon Jan 24 12:37:06 EST 2005


Hello, List,

OK, I tried the recommended procedure, i.e. make LD_OPTIONS=-lrt, and no
longer get a linking error with fdatasync, BUT (arghhh...)...

Make test outputs the following now:

PERL_DL_NONLAZY=1 /bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib/lib', 'blib/arch')" t/*.t
t/01-imclient....Can't load
'/cyrus-imapd-2.2.9/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.so' for module
Cyrus::IMAP: ld.so.1: /bin/perl: fatal: relocation error: file
/cyrus-imapd-2.2.9/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.so: symbol
db_env_create: referenced symbol not found at
/usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
 at t/01-imclient.t line 51
Compilation failed in require at t/01-imclient.t line 51.
BEGIN failed--compilation aborted at t/01-imclient.t line 51.
dubious
	Test returned status 255 (wstat 65280, 0xff00)
t/02-admin.......Can't load
'/cyrus-imapd-2.2.9/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.so' for module
Cyrus::IMAP: ld.so.1: /bin/perl: fatal: relocation error: file
/cyrus-imapd-2.2.9/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.so: symbol
db_env_create: referenced symbol not found at
/usr/local/lib/perl5/5.8.5/sun4-solaris/DynaLoader.pm line 230.
 at /cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/Admin.pm line 44
Compilation failed in require at
/cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/Admin.pm line 44.
BEGIN failed--compilation aborted at
/cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/Admin.pm line 44.
Compilation failed in require at t/02-admin.t line 51.
BEGIN failed--compilation aborted at t/02-admin.t line 51.
dubious
	Test returned status 255 (wstat 65280, 0xff00)
FAILED--2 test scripts could be run, alas--no output ever seen
make: *** [test_dynamic] Error 2

So, per request, here is the requested ldd output:

With LD_LIBRARY_PATH:

   find object=librt.so.1; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/librt.so.1
	librt.so.1 =>	 /lib/librt.so.1

   find object=libsasl2.so.2; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libsasl2.so.2
    trying path=/usr/lib/libsasl2.so.2
    trying path=/usr/openwin/lib/libsasl2.so.2
    trying path=/usr/dt/lib/libsasl2.so.2
    trying path=/usr/local/lib/libsasl2.so.2
	libsasl2.so.2 =>	 /usr/local/lib/libsasl2.so.2

   find object=libc.so.1; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1
	libc.so.1 =>	 /lib/libc.so.1

   find object=libaio.so.1; required by /lib/librt.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libaio.so.1
	libaio.so.1 =>	 /lib/libaio.so.1

   find object=libc.so.1; required by /lib/librt.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libmd5.so.1; required by /lib/librt.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libmd5.so.1
	libmd5.so.1 =>	 /lib/libmd5.so.1

   find object=libdl.so.1; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libdl.so.1
	libdl.so.1 =>	 /lib/libdl.so.1

   find object=libresolv.so.2; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libresolv.so.2
	libresolv.so.2 =>	 /lib/libresolv.so.2

   find object=libsocket.so.1; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libsocket.so.1
	libsocket.so.1 =>	 /lib/libsocket.so.1

   find object=libnsl.so.1; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libnsl.so.1
	libnsl.so.1 =>	 /lib/libnsl.so.1

   find object=libdoor.so.1; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libdoor.so.1
	libdoor.so.1 =>	 /lib/libdoor.so.1

   find object=libc.so.1; required by /usr/local/lib/libsasl2.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libdl.so.1; required by /lib/libc.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libdl.so.1

   find object=libc.so.1; required by /lib/libaio.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libc.so.1; required by /lib/libmd5.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libsocket.so.1; required by /lib/libresolv.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libsocket.so.1

   find object=libnsl.so.1; required by /lib/libresolv.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libnsl.so.1

   find object=libdl.so.1; required by /lib/libresolv.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libdl.so.1

   find object=libc.so.1; required by /lib/libresolv.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libnsl.so.1; required by /lib/libsocket.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libnsl.so.1

   find object=libc.so.1; required by /lib/libsocket.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libdl.so.1; required by /lib/libnsl.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libdl.so.1

   find object=libc.so.1; required by /lib/libnsl.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libmp.so.2; required by /lib/libnsl.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libmp.so.2
	libmp.so.2 =>	 /lib/libmp.so.2

   find object=libc.so.1; required by /lib/libdoor.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=libc.so.1; required by /lib/libmp.so.2
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

   find object=/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1; required by
/lib/libc.so.1
	/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1

   find object=/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1; required
by /lib/libmd5.so.1
	/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1

   find object=libc.so.1; required by
/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1
    search
path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/usr/local/li
b/sasl2:/usr/local/lib/ssl/lib  (LD_LIBRARY_PATH)
    trying path=/lib/libc.so.1

Without LD_LIBRARY_PATH:

   find object=librt.so.1; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search path=/usr/local/lib  (RPATH from file
blib/arch/auto/Cyrus/IMAP/IMAP.so)
    trying path=/usr/local/lib/librt.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/librt.so.1
	librt.so.1 =>	 /usr/lib/librt.so.1

   find object=libsasl2.so.2; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search path=/usr/local/lib  (RPATH from file
blib/arch/auto/Cyrus/IMAP/IMAP.so)
    trying path=/usr/local/lib/libsasl2.so.2
	libsasl2.so.2 =>	 /usr/local/lib/libsasl2.so.2

   find object=libc.so.1; required by blib/arch/auto/Cyrus/IMAP/IMAP.so
    search path=/usr/local/lib  (RPATH from file
blib/arch/auto/Cyrus/IMAP/IMAP.so)
    trying path=/usr/local/lib/libc.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1
	libc.so.1 =>	 /usr/lib/libc.so.1

   find object=libaio.so.1; required by /usr/lib/librt.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libaio.so.1
	libaio.so.1 =>	 /usr/lib/libaio.so.1

   find object=libc.so.1; required by /usr/lib/librt.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libmd5.so.1; required by /usr/lib/librt.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libmd5.so.1
	libmd5.so.1 =>	 /usr/lib/libmd5.so.1

   find object=libdl.so.1; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdl.so.1
	libdl.so.1 =>	 /usr/lib/libdl.so.1

   find object=libresolv.so.2; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libresolv.so.2
	libresolv.so.2 =>	 /usr/lib/libresolv.so.2

   find object=libsocket.so.1; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libsocket.so.1
	libsocket.so.1 =>	 /usr/lib/libsocket.so.1

   find object=libnsl.so.1; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libnsl.so.1
	libnsl.so.1 =>	 /usr/lib/libnsl.so.1

   find object=libdoor.so.1; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdoor.so.1
	libdoor.so.1 =>	 /usr/lib/libdoor.so.1

   find object=libc.so.1; required by /usr/local/lib/libsasl2.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libdl.so.1; required by /usr/lib/libc.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdl.so.1

   find object=libc.so.1; required by /usr/lib/libaio.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libc.so.1; required by /usr/lib/libmd5.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libsocket.so.1; required by /usr/lib/libresolv.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libsocket.so.1

   find object=libnsl.so.1; required by /usr/lib/libresolv.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libnsl.so.1

   find object=libdl.so.1; required by /usr/lib/libresolv.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdl.so.1

   find object=libc.so.1; required by /usr/lib/libresolv.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libnsl.so.1; required by /usr/lib/libsocket.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libnsl.so.1

   find object=libc.so.1; required by /usr/lib/libsocket.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libdl.so.1; required by /usr/lib/libnsl.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdl.so.1

   find object=libc.so.1; required by /usr/lib/libnsl.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libmp.so.2; required by /usr/lib/libnsl.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libmp.so.2
	libmp.so.2 =>	 /usr/lib/libmp.so.2

   find object=libc.so.1; required by /usr/lib/libdoor.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=libc.so.1; required by /usr/lib/libmp.so.2
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

   find object=/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1; required by
/usr/lib/libc.so.1
	/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1

   find object=/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1; required
by /usr/lib/libmd5.so.1
	/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1

   find object=libc.so.1; required by
/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1

I have no idea what is going on in here, the only thing I can see is that it
searches /lib before /usr/lib in the first case, and /usr/lib first in the
second case, but never seems to make it to both in either case? i.e. if it
doesn't find it in the first search path, it never searches anywhere else,
just gives up? I dunn o, just guessing at this point.

It may be worth noting as well that when I first built the entire package,
issued the following:

./configure --with-auth=unix --with-sasl=/usr/local/lib/sasl2
--with-dbdir=/usr/local/BerkeleyDB.4.2 --without-openssl

I don't need openssl support at this time, and possibly I need to point this
build to the location of Berkeley, as in configure? Note that the server is
up and running (at least it appears as though) fine, I can send and receive
mail to the default domain, but I cannot create mailboxes for virtual
domains.

Thank you so much for your help.

--H. Scott Brown

---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list