[Evolution] ximian-connector 2.0.4 x86_64 cannot
--with-static-ldap ?!?
Sackinger, Philip A
pasacki@sandia.gov
Wed, 2 Mar 2005 07:59:07 -0700
This is a multi-part message in MIME format.
------_=_NextPart_001_01C51F38.620C53F6
Content-Type: text/plain;
charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
First, here's what happens when I try to configure with static ldap like =
this
/configure --prefix=3D/usr/local/evolution-2.0.4 =
--with-krb5=3D/usr/local/krb5-1.4 =
--with-openldap=3D/usr/local/openldap-2.2.23+ntlm =
--with-static-ldap=3Dyes --with-e2k-debug=20
.
.
.
checking for OpenLDAP... /usr/local/openldap-2.2.23+ntlm
checking if OpenLDAP is version 2.x... yes
checking for res_query in -lresolv... no
checking for bind in -lsocket... no
checking for gethostbyaddr in -lnsl... yes
checking for ber_get_tag in -llber... yes
checking for ldap_open in -lldap... no
checking for ldap_ntlm_bind... no
checking for Kerberos 5... -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5
checking gtk-doc version >=3D 1.0... yes
configure: creating ./config.status
So configure doesn't seem to find the static library for the =
NTLM-patched=20
OpenLDAP, which AFAICT, seems to be a fine library, viz.
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap.a |grep ntlm
ntlm.o:
0000000000000000 T ldap_ntlm_bind
00000000000001f0 T ldap_parse_ntlm_bind_result
and the configure failure seems to be related to the following snippet, =
taken deep from within config.log:
configure:23767: checking for ldap_ntlm_bind
configure:23824: gcc -o conftest -g -O2 -Wall -Wmissing-prototypes =
-Wnested-externs -Wpointer-arith -Wno-sign-compare -Wno-sign-compare =
-I/usr/local/openldap-2.2.23+ntlm/include conftest.c =
-L/usr/local/openldap-2.2.23+ntlm/lib >&5
/tmp/ccMs2dsV.o(.text+0x9): In function `main':
/usr/netpub/evolution-2.0.4-x86_64/ximian-connector-2.0.4/conftest.c:85: =
undefined reference to `ldap_ntlm_bind'
/tmp/ccMs2dsV.o(.data+0x0): undefined reference to `ldap_ntlm_bind'
collect2: ld returned 1 exit status
.
.
So that's how the static build isn't working.
The second problem, where the dynamic build succeeds, but the binary =
doesn't grab the right=20
dynamic openldap library, is probably something that you've seen a lot. =
Typically, when I compose a message to be sent via Exchange, it triggers =
ximian-exchange-storage to die with
GC: Connecting to ldap://dc11snlnt:3268/
./evolution-exchange-storage: symbol lookup error: =
./evolution-exchange-storage
: undefined symbol: ldap_ntlm_bind
and not surprisingly, either, because
$ ldd evolution-exchange-storage | grep ldap
libldap-2.2.so.7 =3D> /usr/lib64/libldap-2.2.so.7 =
(0x0000003ef1200000)
is pointing to one of my system libraries instead of, say,
/usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16
which apparently has the right ingredient,
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16 | grep =
ldap
0000000000013b30 T ldap_ntlm_bind
0000000000013d50 T ldap_parse_ntlm_bind_result
I've tried to do the configure with more drastic tactics, such as
LDFLAGS=3D"-L/usrlocal/openldap-2.2.23+ntlm/lib" ./configure ...
but to no avail.
I've tried setting LD_LIBRARY_PATH before running =
evolution-exchange-storage, too,
but, again, with no change in behavior.
Perhaps SELinux that comes with FC 3 has iron-fisted policies on loading =
of shared dynamic libraries
particularly involving authentication of which I'm not aware?=20
Thanks for any help or suggestions!
-Phil S.
-----Original Message-----
From: evolution-admin@lists.ximian.com on behalf of Sushma Rai
Sent: Tue 3/1/2005 11:22 PM
To: evolution@lists.ximian.com; Sackinger, Philip A
Subject: Re: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?
=20
What is the exact error you are getting with static
linking?
-Sushma.
>>> "Sackinger, Philip A" <pasacki@sandia.gov> 03/01/05 22:13 PM >>>
I've been trying to build and run ximian connector 2.0.4 under Fedora =
Core 3 on x86_64.
In order to get the evolution-exchange-storage to work with my local =
Exchanger server, I've built=20
OpenLDAP 2.2.23 with the ntlm patch applied.
However, if I try to configure --with-static-ldap, the configure fails =
to compile/link with my
special library. It also seems to fail to find res_query in -lresolv, =
too, FWIW.
Conversely, the configure against the dynamic shared library for patched =
OpenLDAP succeeds. I can then do a make and a make install.
But then, when I actually run E2K_DEBUG=3D4 evolution-exchange-storage =
before firing up evolution 2.0.4, it will
die with a symbol lookup failure that indicates that it is getting the =
dynamic library from a system location in
/usr/lib64 or /lib64 that doesn't have our extra friend =
ldap_ntlm_bind().
So, it's a rock or a hard place.
I saw this old patch for x86_64, but for connector 1.4.7 -- should I try =
to adapt it to 2.0.4?
http://lists.ximian.com/archives/public/evolution-patches/2004-September/=
007474.html
Or, is there a way to coerce my backend storage to use the right dynamic =
shared library?=20
I'm almost ready to forcefully rename the ldap libraries in the system =
directories, but would rather not do something so drastic if it could be =
avoided.
Thanks for any help.
_______________________________________________
evolution maillist - evolution@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/evolution
------_=_NextPart_001_01C51F38.620C53F6
Content-Type: text/html;
charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7226.0">
<TITLE>RE: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=3D2>First, here's what happens when I try to configure =
with static ldap like this<BR>
/configure --prefix=3D/usr/local/evolution-2.0.4 =
--with-krb5=3D/usr/local/krb5-1.4 =
--with-openldap=3D/usr/local/openldap-2.2.23+ntlm =
--with-static-ldap=3Dyes --with-e2k-debug<BR>
.<BR>
.<BR>
.<BR>
checking for OpenLDAP... /usr/local/openldap-2.2.23+ntlm<BR>
checking if OpenLDAP is version 2.x... yes<BR>
checking for res_query in -lresolv... no<BR>
checking for bind in -lsocket... no<BR>
checking for gethostbyaddr in -lnsl... yes<BR>
checking for ber_get_tag in -llber... yes<BR>
checking for ldap_open in -lldap... no<BR>
checking for ldap_ntlm_bind... no<BR>
checking for Kerberos 5... -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5<BR>
checking gtk-doc version >=3D 1.0... yes<BR>
configure: creating ./config.status<BR>
<BR>
So configure doesn't seem to find the static library for the =
NTLM-patched<BR>
OpenLDAP, which AFAICT, seems to be a fine library, viz.<BR>
<BR>
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap.a |grep ntlm<BR>
ntlm.o:<BR>
0000000000000000 T ldap_ntlm_bind<BR>
00000000000001f0 T ldap_parse_ntlm_bind_result<BR>
<BR>
and the configure failure seems to be related to the following snippet, =
taken deep from within config.log:<BR>
<BR>
configure:23767: checking for ldap_ntlm_bind<BR>
configure:23824: gcc -o conftest -g -O2 -Wall -Wmissing-prototypes =
-Wnested-externs -Wpointer-arith -Wno-sign-compare =
-Wno-sign-compare -I/usr/local/openldap-2.2.23+ntlm/include =
conftest.c -L/usr/local/openldap-2.2.23+ntlm/lib =
>&5<BR>
/tmp/ccMs2dsV.o(.text+0x9): In function `main':<BR>
/usr/netpub/evolution-2.0.4-x86_64/ximian-connector-2.0.4/conftest.c:85: =
undefined reference to `ldap_ntlm_bind'<BR>
/tmp/ccMs2dsV.o(.data+0x0): undefined reference to `ldap_ntlm_bind'<BR>
collect2: ld returned 1 exit status<BR>
.<BR>
.<BR>
<BR>
So that's how the static build isn't working.<BR>
<BR>
<BR>
The second problem, where the dynamic build succeeds, but the binary =
doesn't grab the right<BR>
dynamic openldap library, is probably something that you've seen a lot. =
Typically, when I compose a message to be sent via Exchange, it =
triggers ximian-exchange-storage to die with<BR>
<BR>
GC: Connecting to ldap://dc11snlnt:3268/<BR>
./evolution-exchange-storage: symbol lookup error: =
./evolution-exchange-storage<BR>
: undefined symbol: ldap_ntlm_bind<BR>
<BR>
and not surprisingly, either, because<BR>
$ ldd evolution-exchange-storage | grep ldap<BR>
libldap-2.2.so.7 =3D> =
/usr/lib64/libldap-2.2.so.7 (0x0000003ef1200000)<BR>
<BR>
is pointing to one of my system libraries instead of, say,<BR>
/usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16<BR>
<BR>
which apparently has the right ingredient,<BR>
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16 | grep =
ldap<BR>
0000000000013b30 T ldap_ntlm_bind<BR>
0000000000013d50 T ldap_parse_ntlm_bind_result<BR>
<BR>
I've tried to do the configure with more drastic tactics, such as<BR>
LDFLAGS=3D"-L/usrlocal/openldap-2.2.23+ntlm/lib" ./configure =
...<BR>
but to no avail.<BR>
<BR>
I've tried setting LD_LIBRARY_PATH before running =
evolution-exchange-storage, too,<BR>
but, again, with no change in behavior.<BR>
<BR>
Perhaps SELinux that comes with FC 3 has iron-fisted policies on loading =
of shared dynamic libraries<BR>
particularly involving authentication of which I'm not aware?<BR>
<BR>
Thanks for any help or suggestions!<BR>
<BR>
-Phil S.<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: evolution-admin@lists.ximian.com on behalf of Sushma Rai<BR>
Sent: Tue 3/1/2005 11:22 PM<BR>
To: evolution@lists.ximian.com; Sackinger, Philip A<BR>
Subject: Re: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?<BR>
<BR>
What is the exact error you are getting with static<BR>
linking?<BR>
<BR>
-Sushma.<BR>
<BR>
>>> "Sackinger, Philip A" <pasacki@sandia.gov> =
03/01/05 22:13 PM >>><BR>
<BR>
I've been trying to build and run ximian connector 2.0.4 under Fedora =
Core 3 on x86_64.<BR>
<BR>
In order to get the evolution-exchange-storage to work with my local =
Exchanger server, I've built<BR>
OpenLDAP 2.2.23 with the ntlm patch applied.<BR>
<BR>
However, if I try to configure --with-static-ldap, the configure fails =
to compile/link with my<BR>
special library. It also seems to fail to find res_query in -lresolv, =
too, FWIW.<BR>
<BR>
Conversely, the configure against the dynamic shared library for patched =
OpenLDAP succeeds. I can then do a make and a make install.<BR>
<BR>
But then, when I actually run E2K_DEBUG=3D4 evolution-exchange-storage =
before firing up evolution 2.0.4, it will<BR>
die with a symbol lookup failure that indicates that it is getting the =
dynamic library from a system location in<BR>
/usr/lib64 or /lib64 that doesn't have our extra friend =
ldap_ntlm_bind().<BR>
<BR>
So, it's a rock or a hard place.<BR>
<BR>
I saw this old patch for x86_64, but for connector 1.4.7 -- should I try =
to adapt it to 2.0.4?<BR>
<A =
HREF=3D"http://lists.ximian.com/archives/public/evolution-patches/2004-Se=
ptember/007474.html">http://lists.ximian.com/archives/public/evolution-pa=
tches/2004-September/007474.html</A><BR>
<BR>
Or, is there a way to coerce my backend storage to use the right dynamic =
shared library?<BR>
<BR>
I'm almost ready to forcefully rename the ldap libraries in the system =
directories, but would rather not do something so drastic if it could be =
avoided.<BR>
<BR>
Thanks for any help.<BR>
<BR>
<BR>
_______________________________________________<BR>
evolution maillist - evolution@lists.ximian.com<BR>
<A =
HREF=3D"http://lists.ximian.com/mailman/listinfo/evolution">http://lists.=
ximian.com/mailman/listinfo/evolution</A><BR>
<BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>
------_=_NextPart_001_01C51F38.620C53F6--