Your libsasl2 package is broken. The code in libsasl.a depends on
several external libraries, but static libraries have no mechanism for
expressing external library dependencies. This is one of the problems
with static libraries that libtool is designed to solve, but that only
works when the corresponding .la file that libtool generates for its
libraries gets installed along with the library. If you actually have a
/usr/lib/libsasl2.la file on your system, then it seems to be missing
the proper dependency_libs settings. Or if you're missing the .la file,
that's your problem. In general of course, it's preferred to build
libraries that have external dependencies as shared libraries, because
they do have a mechanism for recording their dependencies without
outside help. So all in all, the provider of your libsasl2 package needs
to get their act together.
Dennis Matotek wrote:
Having an error compiling the source on 2.3.17.
machine is:
mandriva 2006 2.6.12-14mdk
libsasl2-devel-2.1.22-11mdk
libopenssl0.9.7-devel-0.9.7g-2.1.20060mdk
libdb4.2-4.2.52-7mdk
I configure with:
./configure --prefix=/usr/local/openldap-2.3.17 --enable-overlays
--enable-bdb --enable-slapd --enable-cleartext --enable-spasswd
--enable-ldap --enable-syslog --with-threads --with-tls --disable-sql
--disable-perl --disable-hdb --disable-passwd --disable-ldbm
make depends works fine
make gives this error:
Entering subdirectory libldap
make[2]: Entering directory
`/usr/local/packages/openldap/openldap-2.3.17/libraries/libldap'
/bin/sh ../..//libtool --mode=link cc -static -g -O2 -o apitest
apitest.o libldap.la ../../libraries/liblber/liblber.la
../../libraries/liblutil/liblutil.a -lsasl2 -lssl -lcrypto -lresolv
cc -g -O2 -o apitest apitest.o ./.libs/libldap.a
/usr/local/packages/openldap/openldap-2.3.17/libraries/liblber/.libs/liblber.a
-L/usr/lib ../../libraries/liblber/.libs/liblber.a
../../libraries/liblutil/liblutil.a /usr/lib/libsasl2.a -ldl -lssl
-lcrypto -lresolv
./.libs/libldap.a(os-ip.o): In function `ldap_pvt_is_socket_ready':
/usr/local/packages/openldap/openldap-2.3.17/libraries/libldap/os-ip.c:194:
warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r'
instead
/usr/local/packages/openldap/openldap-2.3.17/libraries/libldap/os-ip.c:194:
warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
/usr/lib/libsasl2.a(db_berkeley.o): In function `berkeleydb_open':
db_berkeley.c:(.text+0x5b): undefined reference to `db_create'
db_berkeley.c:(.text+0xdf): undefined reference to `db_strerror'
/usr/lib/libsasl2.a(db_berkeley.o): In function `berkeleydb_close':
db_berkeley.c:(.text+0x1b6): undefined reference to `db_strerror'
/usr/lib/libsasl2.a(db_berkeley.o): In function `_sasldb_getdata':
db_berkeley.c:(.text+0x660): undefined reference to `db_strerror'
/usr/lib/libsasl2.a(db_berkeley.o): In function `_sasldb_putdata':
db_berkeley.c:(.text+0x8b9): undefined reference to `db_strerror'
db_berkeley.c:(.text+0x96d): undefined reference to `db_strerror'
/usr/lib/libsasl2.a(gssapi.o): In function
`sasl_gss_free_context_contents':
gssapi.c:(.text+0xdc): undefined reference to `gss_delete_sec_context'
gssapi.c:(.text+0xfc): undefined reference to `gss_release_name'
gssapi.c:(.text+0x11c): undefined reference to `gss_release_name'
gssapi.c:(.text+0x13c): undefined reference to `gss_release_cred'
gssapi.c:(.text+0x15c): undefined reference to `gss_release_cred'
/usr/lib/libsasl2.a(gssapi.o): In function `sasl_gss_seterror_':
gssapi.c:(.text+0x4a8): undefined reference to `gss_display_status'
gssapi.c:(.text+0x502): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x58b): undefined reference to `gss_display_status'
gssapi.c:(.text+0x5e5): undefined reference to `gss_release_buffer'
/usr/lib/libsasl2.a(gssapi.o): In function `gssapi_server_mech_step':
gssapi.c:(.text+0x7e0): undefined reference to `gss_display_name'
gssapi.c:(.text+0x868): undefined reference to `GSS_C_NT_USER_NAME'
gssapi.c:(.text+0x87f): undefined reference to `gss_import_name'
gssapi.c:(.text+0x8aa): undefined reference to `gss_compare_name'
gssapi.c:(.text+0x8c4): undefined reference to `gss_release_name'
gssapi.c:(.text+0x8fe): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x9db): undefined reference to `gss_wrap'
gssapi.c:(.text+0xa31): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xa71): undefined reference to `gss_unwrap'
gssapi.c:(.text+0xada): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xb56): undefined reference to `gss_accept_sec_context'
gssapi.c:(.text+0xc0b): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xccb): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xd38): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xe1c): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0xea3): undefined reference to `gss_release_name'
gssapi.c:(.text+0xfc4): undefined reference to
`GSS_C_NT_HOSTBASED_SERVICE'
gssapi.c:(.text+0xfda): undefined reference to `gss_import_name'
gssapi.c:(.text+0x1017): undefined reference to `gss_release_cred'
gssapi.c:(.text+0x1058): undefined reference to `gss_acquire_cred'
gssapi.c:(.text+0x10b4): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x10e5): undefined reference to `gss_wrap_size_limit'
gssapi.c:(.text+0x1127): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1141): undefined reference to `gss_release_name'
gssapi.c:(.text+0x1172): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x11cd): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x125b): undefined reference to `gss_release_buffer'
/usr/lib/libsasl2.a(gssapi.o): In function `gssapi_decode_packet':
gssapi.c:(.text+0x135a): undefined reference to `gss_unwrap'
gssapi.c:(.text+0x13d2): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x140e): undefined reference to `gss_release_buffer'
/usr/lib/libsasl2.a(gssapi.o): In function `sasl_gss_encode':
gssapi.c:(.text+0x14fa): undefined reference to `gss_wrap'
gssapi.c:(.text+0x1596): undefined reference to `gss_release_buffer'
/usr/lib/libsasl2.a(gssapi.o): In function `gssapi_client_mech_step':
gssapi.c:(.text+0x177a): undefined reference to `gss_init_sec_context'
gssapi.c:(.text+0x1801): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1853): undefined reference to `gss_unwrap'
gssapi.c:(.text+0x1925): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x19c5): undefined reference to `gss_wrap'
gssapi.c:(.text+0x1a35): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1a5f): undefined reference to `gss_delete_sec_context'
gssapi.c:(.text+0x1ad1): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1b1b): undefined reference to `gss_inquire_context'
gssapi.c:(.text+0x1b4e): undefined reference to `gss_display_name'
gssapi.c:(.text+0x1ba2): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1db8): undefined reference to
`GSS_C_NT_HOSTBASED_SERVICE'
gssapi.c:(.text+0x1dcb): undefined reference to `gss_import_name'
gssapi.c:(.text+0x1e41): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1e79): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x1f40): undefined reference to `gss_release_buffer'
gssapi.c:(.text+0x2002): undefined reference to `gss_wrap_size_limit'
gssapi.c:(.text+0x2080): undefined reference to `gss_release_buffer'
/usr/lib/libsasl2.a(sql.o): In function `_mysql_open':
sql.c:(.text+0x1a): undefined reference to `mysql_init'
sql.c:(.text+0x83): undefined reference to `mysql_real_connect'
/usr/lib/libsasl2.a(sql.o): In function `_mysql_escape_str':
sql.c:(.text+0xe1): undefined reference to `mysql_escape_string'
/usr/lib/libsasl2.a(sql.o): In function `_mysql_exec':
sql.c:(.text+0x122): undefined reference to `mysql_real_query'
sql.c:(.text+0x132): undefined reference to `mysql_field_count'
sql.c:(.text+0x14a): undefined reference to `mysql_store_result'
sql.c:(.text+0x15c): undefined reference to `mysql_num_rows'
sql.c:(.text+0x195): undefined reference to `mysql_fetch_row'
sql.c:(.text+0x1dd): undefined reference to `mysql_free_result'
sql.c:(.text+0x213): undefined reference to `mysql_free_result'
sql.c:(.text+0x22e): undefined reference to `mysql_error'
sql.c:(.text+0x269): undefined reference to `mysql_free_result'
/usr/lib/libsasl2.a(sql.o): In function `_mysql_close':
sql.c:(.text+0x385): undefined reference to `mysql_close'
/usr/lib/libsasl2.a(ldapdb.o): In function `ldapdb_connect':
ldapdb.c:(.text+0x24d): undefined reference to `ldap_whoami_s'
/usr/lib/libsasl2.a(ldapdb.o): In function `ldapdb_auxprop_store':
ldapdb.c:(.text+0x405): undefined reference to `ldap_modify_ext_s'
/usr/lib/libsasl2.a(ldapdb.o): In function `ldapdb_auxprop_lookup':
ldapdb.c:(.text+0x6f5): undefined reference to `ldap_first_message'
ldapdb.c:(.text+0x70f): undefined reference to `ldap_next_message'
collect2: ld returned 1 exit status
make[2]: *** [apitest] Error 1
make[2]: Leaving directory
`/usr/local/packages/openldap/openldap-2.3.17/libraries/libldap'
make[1]: *** [all-common] Error 1
make[1]: Leaving directory
`/usr/local/packages/openldap/openldap-2.3.17/libraries'
make: *** [all-common] Error 1
The config log has these kinds of errors through it:
configure:11875: checking for be_app in -lbe
configure:11905: cc -o conftest -g -O2 conftest.c -lbe -lroot -lnet
>&5
/usr/bin/ld: cannot find -lbe
collect2: ld returned 1 exit status
configure:11911: $? = 1
configure: failed program was:
| /* confdefs.h. */
/usr/bin/ld: cannot find -ls
collect2: ld returned 1 exit status
configure:12881: $? = 1
configure: failed program was:
| /* confdefs.h. */
In the faq there is a similar error on a solaris machine and the
answer given was to './configure --blah --blah --with-gnu-ld' but this
makes no difference to the error given.
I can't find confdefs.h on my system anywhere (in fact the only
confdefs.h I've found is on an old Tru64 machine) Any ideas?
The configure script generates and deletes confdefs.h while running each
test. None of those configure errors are significant.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/