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

Re: (ITS#4982) link libldap_r explicitly with the threading libraries



Kurt Zeilenga <kurt@OpenLDAP.org> writes:

> libtool should properly handle -pthread.  If it doesn't, that should be
> fixed instead of kludging things up with -lpthread.  -pthread tells gcc
> to do the right thing.  The right thing might not be to link in
> -lpthread.  (On some versions of FreeBSD, the right think is -lc_r.)
> -pthread also might do more than link in a library.

> As OpenLDAP includes its own copy of libtool, a local fix can be
> provided until the upstream fixes it right.

I think the above was meant for ITS #4981?

This issue, ITS#4982, is that no threading flags (not -pthread, not
-lpthread, not anything) are passed into the final link line of libldap_r,
as near as I can tell.  It's possible that I'm reading the makefile wrong
and this has been fixed in some other way since the Debian patch had been
applied, but libraries/libldap_r/Makefile.in contains:

UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)

and build/lib-shared.mk has:

$(LIBRARY): version.lo
        $(LTLINK_LIB) -o $@ $(OBJS) version.lo $(LINK_LIBS)

including only LINK_LIBS, and not the regular LIBS variable (which is what
includes LTHREAD_LIBS via XXXLIBS).  It could be that I'm missing some
contribution to LTLINK_LIB handled by the threading macros, though.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>