[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#4830) test030-relay fails with back-meta
ahasenack@terra.com.br wrote:
> On Fri, Feb 02, 2007 at 04:03:43PM +0000, ahasenack@terra.com.br wrote:
>> ==> rewrite_context_apply [depth=1] string='(objectClass=*)'
>> ==> rewrite_context_apply [depth=1] res={0,'NULL'}
>> [rw] searchFilter: "(objectClass=*)" -> "(objectClass=*)"
>> /home/andreas/updates-svn/openldap/BUILD/openldap-2.3.33/servers/slapd/.libs/lt-slapd:
>> symbol lookup error:
>> +../servers/slapd/back-meta/.libs/back_meta-2.3.so.0: undefined symbol:
>> ldap_back_proxy_authz_ctrl
>
> Howard debugged this on IRC and it turns out that our (mine and
> _ranger_'s) libunixodbc has lt_dl* symbols in it. Relinking slapd
> without the unixodbc lib fixes it.
Yes, so there are two potential issues - the unixodbc shared library seems to
be statically linked with an older version of libltdl. I didn't run into this
problem on my build because I don't have that odbc library. Anyway, due to
the link order of the libraries, the lt_dlopen in this library gets used
before the linker resolves to the system's libltdl.so, and it seems that this
version of lt_dlopen doesn't automatically export the symbols of modules that
it loads.
I'm guessing the reason this is a problem in 2.3.33 and not in 2.3.32 is
because there is a new dependency in 2.3.33 between back-meta and back-ldap.
The other part of this is that the slapd binary should not be getting linked
against -lodbc when back_sql is built as a module.
Although, if back-sql is built statically, and other backends are dynamic,
this problem may still crop up. It seems that fixing -lodbc would be required
then.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
Chief Architect, OpenLDAP http://www.openldap.org/project/