[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