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

Re: problem with libldap.so



On Tue, 20 May 2003, Nick Couchman wrote:

> Igor Brezac wrote:
>
> >On Tue, 20 May 2003, Nick Couchman wrote:
> >
> >
> >
> >>Igor Brezac wrote:
> >>
> >>
> >>
> >>>On Tue, 20 May 2003, Nick Couchman wrote:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>When I do an `ldd -r /usr/local/lib/libldap.so` I get the following:
> >>>>liblber.so.2 =>  /usr/local/lib/liblber.so.2
> >>>>       libresolv.so.2 =>        /usr/lib/libresolv.so.2
> >>>>       libnsl.so.1 =>   /usr/lib/libnsl.so.1
> >>>>       libsocket.so.1 =>        /usr/lib/libsocket.so.1
> >>>>       libdl.so.1 =>    /usr/lib/libdl.so.1
> >>>>       libssl.so.0.9.7 =>       /usr/local/lib/libssl.so.0.9.7
> >>>>       libcrypto.so.0.9.7 =>    /usr/local/lib/libcrypto.so.0.9.7
> >>>>       libc.so.1 =>     /usr/lib/libc.so.1
> >>>>       libmp.so.2 =>    /usr/lib/libmp.so.2
> >>>>       libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
> >>>>       /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
> >>>>       symbol not found: __eprintf
> >>>>(/usr/local/lib/liblber.so.2)
> >>>>
> >>>>The last problem - the symbot not found: __eprintf - I need to get rid
> >>>>of.  It's causing problems with pam_ldap and nss_ldap.  How do I compile
> >>>>OpenLDAP without this dependency?  I've tried removing the "assert.h"
> >>>>file from the gcc install and I have the same problem.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>You need link the library with 'gcc -shared'.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>So I can't use the native linker (/usr/ccs/bin/ld)?  How do I change the
> >>
> >>
> >
> >'gcc -shared' will use the native linker.  gcc on Solaris should _not_ be
> >built to use GNU linker and assembler.
> >
> >
> >
> >>Makefile to make gcc the linker instead of ld?
> >>
> >>
> >
> >You need to edit configure script and rebuild/recompile openldap.  This is
> >really a hack, libtool needs to be fixed.
> >
> >
> >
> But it's already using the native linker (at least it appears that way).
>  In libtool, LD is set to /usr/ccs/bin/ld.  Is there something else that
> needs to be changed?
>

libtool is wrong.  The idea is to link with gcc -shared and not ld.
LD="gcc -shared"

As Howard pointed out, you should be able to proceed by removing assert.h.

-- 
Igor