[64bit] openldap compilation doesn't produce shared libraries

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Fri Jun 7 08:06:00 GMT 2013


On 2013-05-31 11:58, Yaakov (Cygwin/X) wrote:
> On 2013-05-31 08:39, Dr. Volker Zell wrote:
>> On cygwin 64bit compilation of openldap doesn't produce shared libraries for
>> libldap and libldap_r (although a shared lib for liblber is produced).
>
> Assuming you are using the same build as the i686 2.4.35-1, the problem
> is that you didn't call cygautoreconf.  As noted in the cygport docs,
> skipping this step is not recommended even on i686, due to continual
> improvements and patches present in our version of libtool.  On x86_64,
> cygautoreconf is often *crucial*, as only the most recent versions of
> libtool know about the PE32+ format.  openldap ships with a 1.5.x
> libtool, hence the failure.

Following up on this, I noticed that slapd's build process is quite 
broken, resulting in an invalidly formatted executable.  The working 
method to create a linkable EXE is to just link it with 
-Wl,--export-all-symbols,--out-implib,libfoo.a, then link other modules 
with -Wl,path/to/libfoo.a.  (Relying on -L flags for in-tree paths isn't 
always a good idea with libtool.)

I took the liberty of fixing up the build of slapd both with and without 
modular backends/overlays.  The patch and modified cygport(3) are in 
Ports git:

http://cygwin-ports.git.sourceforge.net/git/gitweb.cgi?p=cygwin-ports/openldap

HTH,


Yaakov



More information about the Cygwin-apps mailing list