[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/