[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: undefined reference to `ldap_int_tls_impl' (tls2.c) ?

Elle Y Suzuki wrote:
make is exiting with several "undefined reference to
'ldap_int_tls_impl'" error messages:

Pretty interesting. This basically means that configure ran without selecting any TLS implementation, but still left TLS enabled. Can you upload your config.log file somewhere for us to examine?

./.libs/libldap.a(tls2.o): In function `ldap_pvt_tls_ctx_free':
undefined reference to `ldap_int_tls_impl'
./.libs/libldap.a(tls2.o): In function `tls_init':
undefined reference to `ldap_int_tls_impl'
undefined reference to `ldap_int_tls_impl'
undefined reference to `ldap_int_tls_impl'
./.libs/libldap.a(tls2.o): In function `ldap_pvt_tls_check_hostname':
undefined reference to `ldap_int_tls_impl'
more undefined references to `ldap_int_tls_impl' follow
collect2: ld returned 1 exit status
make[2]: *** [apitest] Error 1
make[2]: Leaving directory
make[1]: *** [all-common] Error 1
make[1]: Leaving directory
make: *** [all-common] Error 1

what is the proper way to fix this so that i might successfully make?

i am attempting to set up and install openldap 2.4.24 on a virtual
kubuntu on windows xp.

'configure' and 'make depend' appear to run successfully.
i execute the following steps:

export CPPFLAGS="-I/usr/include/nss -I/usr/include/nspr
export LDFLAGS="-L/usr/lib/nss -L/usr/local/BerkeleyDB.5.0/lib"
export LD_LIBRARY_PATH="/home/vmplanet/Downloads/db-5.0.32/build_unix/.libs"

configure --enable-shell=yes --without-threads
make depend

(in case you're wondering why back-shell, i've included details in a
previous thread, http://tinyurl.com/4flbgh4.  note that in that thread,
i successfully installed openldap directly on windows, but had questions
about successfully testing back-shell -- and still do.)

going back to the errors above, i note in which files this
'ldap_int_tls_impl' appears with a grep:

./libraries/libldap_r/tls2.c:40:static tls_impl *tls_imp =
./libraries/libldap_r/tls_g.c:1095:tls_impl ldap_int_tls_impl = {
./libraries/libldap_r/tls_o.c:1253:tls_impl ldap_int_tls_impl = {
./libraries/libldap_r/tls_m.c:3040:tls_impl ldap_int_tls_impl = {
./libraries/libldap/tls2.c:40:static tls_impl *tls_imp =&ldap_int_tls_impl;
./libraries/libldap/tls_g.c:1095:tls_impl ldap_int_tls_impl = {
./libraries/libldap/ldap-tls.h:75:extern tls_impl ldap_int_tls_impl;
Binary file ./libraries/libldap/.libs/libldap-2.4.so.2.6.0 matches
Binary file ./libraries/libldap/.libs/libldap.so matches
Binary file ./libraries/libldap/.libs/tls2.o matches
Binary file ./libraries/libldap/.libs/libldap-2.4.so.2 matches
Binary file ./libraries/libldap/.libs/libldap.a matches
Binary file ./libraries/libldap/tls2.o matches
./libraries/libldap/tls_o.c:1253:tls_impl ldap_int_tls_impl = {
./libraries/libldap/tls_m.c:3040:tls_impl ldap_int_tls_impl = {

ldap_int_tls_impl appears (defined) in the fellow tls* files above.  is
this then an indication that tls2.c is not communicating or 'linked' to
its fellow tls* files or ?

the output from 'make depend' appears to show that mkdep traversed the
libldap and libldap_r subdirectories and successfully constructed the
necessary sets of include file dependencies.

admittedly, i am not altogether that familiar with (the intricacies of)
the compile/make process.

please advise; thanks in advance.

  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/