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

OpenLDAP MinGW Compilation + OpenSSL/TLS



I've built OpenLDAP 2.2.5 using MinGW on Windows with no issues, however I'm
now trying to integrate OpenSSL 0.9.7c and have hit a snag.  I compiled
OpenSSL using both a Cygwin/MinGW combination and using MinGW standalone,
and both methods worked fine.  The problem is that using a Cygwin/MinGW
combination, the compilation will not output shared libraries.  Using MinGW
standalone, shared libraries are built, but in dll form.  The OpenLDAP
configure script is not able to probe these dlls to find the function defs
it's looking for, so autoconf aborts.

Does anyone have any ideas as to what method I might be able to take to get
configure to accept the MinGW built libraries?

Thanks,

Jason

config.log dump
---------------------------------------------------------------

configure:11108: checking for SSL_library_init in -lssl
configure:11127: mgcc -o conftest.exe -g -O2
-I/usr/local/devel/builds/1/openssl-0.9.7c/include
-I/usr/local/mingw/include -I/usr/include/w32api
-L/usr/local/devel/builds/1/openssl-0.9.7c -L/usr/local/mingw/lib
-L/usr/lib/w32api -L/lib/mingw -L/usr/lib/mingw conftest.c -lssl -lcrypto
-lregex  -lws2_32 1>&5
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb13
):rand_win.c: undefined reference to `_CreateDCA@16'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb24
):rand_win.c: undefined reference to `_CreateCompatibleDC@4'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb39
):rand_win.c: undefined reference to `_GetDeviceCaps@8'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb49
):rand_win.c: undefined reference to `_GetDeviceCaps@8'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb63
):rand_win.c: undefined reference to `_CreateCompatibleBitmap@12'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb71
):rand_win.c: undefined reference to `_SelectObject@8'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xb83
):rand_win.c: undefined reference to `_GetObjectA@12'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xbf1
):rand_win.c: undefined reference to `_BitBlt@36'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xbfb
):rand_win.c: undefined reference to `_GetBitmapBits@12'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xc52
):rand_win.c: undefined reference to `_SelectObject@8'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xc59
):rand_win.c: undefined reference to `_DeleteObject@4'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xc63
):rand_win.c: undefined reference to `_DeleteDC@4'
/usr/local/devel/builds/1/openssl-0.9.7c/libcrypto.a(rand_win.o)(.text+0xc6d
):rand_win.c: undefined reference to `_DeleteDC@4'
collect2: ld returned 1 exit status
configure: failed program was:
#line 11116 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char SSL_library_init();

int main() {
SSL_library_init()
; return 0; }
configure:11153: checking for ssl3_accept in -lssl
configure:11172: mgcc -o conftest.exe -g -O2
-I/usr/local/devel/builds/1/openssl-0.9.7c/include
-I/usr/local/mingw/include -I/usr/include/w32api
-L/usr/local/devel/builds/1/openssl-0.9.7c -L/usr/local/mingw/lib
-L/usr/lib/w32api -L/lib/mingw -L/usr/lib/mingw conftest.c -lssl -lcrypto
-lRSAglue -lrsaref -lregex  -lws2_32 1>&5
/usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/../../../../i686-pc-mingw32/bin/ld:
cannot find -lRSAglue
collect2: ld returned 1 exit status
configure: failed program was:
#line 11161 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char ssl3_accept();

int main() {
ssl3_accept()
; return 0; }