rk@owen.sj.ca.us wrote:
Full_Name: R.K. Owen Version: HEAD OS: linux URL: ftp://ftp.openldap.org/incoming/rkowen-061106.patch Submission from: (NULL) (66.87.79.68)
When using the back-sql with the Oracle XE DB, the Oracle ODBC library libsqora.so.10.1 was designed to be linked against the unixODBC interface library instead of the iODBC interface library. This can be demonstrated by using the unixODBC isql tool which will allow successful interactive querying of the Oracle DB. However, when trying to start up the slapd daemon with 'slapd -d 1' the daemon will quit with an error claiming: Message: [iODBC][Driver Manager] /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libsqora.so.10.1: undefined symbol: bcuMsgBoxError
The cause for this is that the configure script will first search for iodbc, then odbc, and thus cause slapd to be built against the iodbc library. By adding the -with-odbc option the configure script will allow the administrator to choose which library to use in a flexible way:
--with-odbc=iodbc # current default (-liodbc) --with-odbc=odbc # try -lodbc --with-odbc=/usr/lib/libodbc.so.1 # link against the shared object library
The changes have been made to the source configure.in file and uploaded as a patch.
The patch is not acceptable, since it requires to specify the desired OBDC support, which is counter-intuitive, as most of the RDBMS have drivers or allow to use drivers for both implementations of ODBC. However, your need is clear. I've designed a different fix, which requires to set --with-odbc to the preferred sequence of ODBCs to try (iodbc | unixodbc), while the default (auto) tries the original sequence. It is now committed to HEAD; please test.
p.
Ing. Pierangelo Masarati OpenLDAP Core Team
SysNet s.n.c. Via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it ------------------------------------------ Office: +39.02.23998309 Mobile: +39.333.4963172 Email: pierangelo.masarati@sys-net.it ------------------------------------------