Hi,

I'm trying to build the LDAP C SDK from source for Windows _32bit_(!).
- Windows 7 Professional SP1 x64
- VS 2010 Professional
- Cyrus SASL 2.1.25
- LDAP C SDK sources both 6.0.7 and yesterday's (2012-03-20) Mercurial checkout

- all prerequisites are satisfied (NSS, NSPR, OpenSSL build from source)
- SASL builds, *dlls and .lib available

LDAP C SDK build steps:

foo@bar ~/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk
$ ./configure --with-nss-inc=/c/Users/foo/Desktop//SW_Development/nss-3.13.3/mozilla/dist/release/no-policy/include/ --with-nss- lib=/c/Users/foo/Desktop/SW_Development/nss-3.13.3/mozilla/dist/release/no-policy/WINNT6.1_DBG.OBJ/lib/ --with-nspr-inc=/c/Users //foo//Desktop/SW_Development/nss-3.13.3/mozilla/nsprpub/dist/release/nspr20/4.9_20120320/include/ --with-nspr-lib=/c/Users/foo /Desktop/SW_Development/nss-3.13.3/mozilla/nsprpub/dist/release/nspr20/4.9_20120320/lib/ --with-sasl-inc=/c/Users/foo/Desktop/SW _Development/cyrus-sasl-2.1.25/include/ --with-sasl-lib=/c/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib
loading cache ./config.cache
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
checking build system type... i686-pc-mingw32
checking for cl... cl
checking for --with-svrcore... no
checking for --with-nss... no
checking for --with-nss-inc... using /c/Users/foo/Desktop//SW_Development/nss-3.13.3/mozilla/dist/release/no-policy/include/ checking for --with-nss-lib... using /c/Users/foo/Desktop/SW_Development/nss-3.13.3/mozilla/dist/release/no-policy/WINNT6.1_DBG.O
BJ/lib/
checking for --with-nspr... no
checking for --with-nspr-inc... using /c/Users//foo//Desktop/SW_Development/nss-3.13.3/mozilla/nsprpub/dist/release/nspr20/4.9_20
120320/include/
checking for --with-nspr-lib... using /c/Users/foo/Desktop/SW_Development/nss-3.13.3/mozilla/nsprpub/dist/release/nspr20/4.9_2012
0320/lib/
checking for lib... 1
checking for --with-sasl... no
checking for --with-sasl-inc... using /c/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/include/ checking for --with-sasl-lib... using /c/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib
checking for getaddrinfo... no
checking for getaddrinfo in -lsocket... no
checking for sasl_client_init in -lsasl2... no
checking for sasl_client_init in -lsasl... no
creating ./config.status
creating Makefile
creating config/Makefile
creating config/autoconf.mk
creating ldap/Makefile
creating ldap/clients/tools/Makefile
creating ldap/include/Makefile
creating ldap/libraries/Makefile
creating ldap/libraries/libldap/Makefile
creating ldap/libraries/libprldap/Makefile
creating ldap/libraries/libldif/Makefile
creating ldap/libraries/liblber/Makefile
creating ldap/libraries/libiutil/Makefile
creating ldap/libraries/libssldap/Makefile
creating ldap/libraries/libutil/Makefile

foo@bar ~/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk

note

checking for sasl_client_init in -lsasl2... no
checking for sasl_client_init in -lsasl... no

I am not sure, what that means -- but in the light of the failing build it doesn't look good.



foo@bar ~/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk
$ make
cd config; make BUILD_DEBUG=optimize export
make[1]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/config'
make[1]: Nothing to be done for `export'.
make[1]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/config'
cd ldap; make BUILD_DEBUG=optimize export
make[1]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap'
cd include; make BUILD_DEBUG=optimize export
make[2]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/include'
nsinstall -D ../../../../dist/public/ldap
nsinstall -D ../../../../dist/public/ldap-private
nsinstall -R -m 644 ./disptmpl.h ./lber.h ./ldap.h ./ldap-extension.h ./ldap-platform.h ./ldap-to-be-deprecated.h ./ldap-deprecat ed.h ./ldap_ssl.h ./ldappr.h ./ldif.h ./iutil.h ./srchpref.h ../../../../dist/public/ldap nsinstall -R -m 644 ./../libraries/libldap/ldap-int.h ./../libraries/liblber/lber-int.h ./portable.h ./ldaprot.h ./ldaplog.h ../.
./../../dist/public/ldap-private
make[2]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/include'
cd libraries; make BUILD_DEBUG=optimize export
make[2]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries'
cd liblber; make BUILD_DEBUG=optimize export
make[3]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/liblber'
nsinstall -R -m 444 ./nslber32v60.lib ../../../../../dist/lib
make[3]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/liblber'
cd libldif; make BUILD_DEBUG=optimize export
make[3]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libldif'
nsinstall -R -m 444 ./nsldif32v60.lib ../../../../../dist/lib
nsinstall -R -m 444 ./nsldif32v60.lib ../../../../../dist/lib
nsinstall -R -m 444 ./nsldif32v60.dll ../../../../../dist/lib
nsinstall -R -m 444 ./nsldif32v60.dll ../../../../../dist/bin
make[3]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libldif'
cd libiutil; make BUILD_DEBUG=optimize export
make[3]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libiutil'
nsinstall -R -m 444 ./nsiutil32v60.lib ../../../../../dist/lib
make[3]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libiutil'
cd libldap; make BUILD_DEBUG=optimize export
make[3]: Entering directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libldap'
======= making ./nsldap32v60.dll
link -DYNAMICBASE -OUT:"nsldap32v60.dll" -MAP -nologo -DLL -SUBSYSTEM:WINDOWS -SUBSYSTEM:CONSOLE wsock32.lib kernel32.lib user3 2.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib rpcrt4.lib uuid.lib winmm.lib ../../../. ./../dist/lib/nsldif32v60.lib ../../../../../dist/lib/nslber32v60.lib -L/c/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib -out:"nsldap32v60.dll" ./abandon.obj ./add.obj ./authzidctrl.obj ./bind.obj ./cache.obj ./charray.obj ./charset.obj ./compare.ob j ./compat.obj ./control.obj ./countvalues.obj ./delete.obj ./disptmpl.obj ./dsparse.obj ./error.obj ./extendop.obj ./free.obj ./f reevalues.obj ./friendly.obj ./getattr.obj ./getdn.obj ./getdxbyname.obj ./geteffectiverightsctrl.obj ./getentry.obj ./getfilter.o bj ./getoption.obj ./getvalues.obj ./memcache.obj ./message.obj ./modify.obj ./open.obj ./os-ip.obj ./proxyauthctrl.obj ./psearch. obj ./pwmodext.obj ./pwpctrl.obj ./referral.obj ./regex.obj ./rename.obj ./request.obj ./reslist.obj ./result.obj ./saslbind.obj . /sbind.obj ./search.obj ./setoption.obj ./sort.obj ./sortctrl.obj ./srchpref.obj ./tmplout.obj ./ufn.obj ./unbind.obj ./unescape.o bj ./url.obj ./userstatusctrl.obj ./utf8.obj ./vlistctrl.obj ./whoami.obj ./saslio.obj ./dllmain.obj ./mozock.obj -DEF:c:/Users/u lli/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/msdos/winsock/nsldap32.def wsock32.lib kernel32.li b user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib rpcrt4.lib uuid.lib winmm.lib ../ ../../../../dist/lib/nsldif32v60.lib ../../../../../dist/lib/nslber32v60.lib -L/c/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1
.25/lib
LINK : warning LNK4044: Nicht erkannte Option /Lc:/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib; wird ignoriert. LINK : warning LNK4044: Nicht erkannte Option /Lc:/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib; wird ignoriert. c:/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/msdos/winsock/nsldap32.def(39) : warning LNK4017: DESCRIPTION-Anweisung wird von der Zielplattform nicht unterstützt; wird ignoriert. Bibliothek "nsldap32v60.lib" und Objekt "nsldap32v60.exp" werden erstellt. getoption.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_getprop" in Funktion "_ldap_get_option@1
2".
saslbind.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__sasl_getprop". saslio.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__sasl_getprop". open.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_client_init" in Funktion "_nsldapi_initialize
_defaults".
open.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_set_alloc" in Funktion "_nsldapi_initialize_d
efaults".
open.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_set_mutex" in Funktion "_nsldapi_initialize_d
efaults".
request.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_dispose" in Funktion "_nsldapi_free_connec
tion".
saslio.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__sasl_dispose". saslbind.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_client_step" in Funktion "_nsldapi_sasl_d
o_bind".
saslbind.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_errdetail" in Funktion "_nsldapi_sasl_do_
bind".
saslbind.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_client_start" in Funktion "_nsldapi_sasl_
do_bind".
setoption.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_setprop" in Funktion "_ldap_set_option@1
2".
saslio.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__sasl_setprop". saslio.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_decode" in Funktion "_nsldapi_sasl_read". saslio.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_encode" in Funktion "_nsldapi_sasl_write". saslio.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sasl_client_new" in Funktion "_nsldapi_sasl_open
".
nsldap32v60.dll : fatal error LNK1120: 12 nicht aufgelöste externe Verweise.
make[3]: *** [nsldap32v60.dll] Error 96
make[3]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries/libldap'
make[2]: *** [export] Error 2
make[2]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap/libraries'
make[1]: *** [export] Error 2
make[1]: Leaving directory `/c/Users/foo/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk/ldap'
make: *** [export] Error 2

foo@bar ~/Desktop/SW_Development/mozldap-6.0.7/mozilla/directory/c-sdk
$

"Nicht aufgelöstes externes Symbol" == "unresolved external symbol" (BTW is there a way to make that MozillaBuild and the tools called output english messages instead of localized?)

according to thise warning

LINK : warning LNK4044: Nicht erkannte Option /Lc:/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib; wird ignoriert. LINK : warning LNK4044: Nicht erkannte Option /Lc:/Users/foo/Desktop/SW_Development/cyrus-sasl-2.1.25/lib; wird ignoriert.

the linker does not recognize the --with-sasl-lib option as a valid path to the .lib file -- hence, it's not found and linking fails.

Is this a bug (if so, how to work around) or did I miss something here?

Thanks in advance

_______________________________________________
dev-tech-ldap mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-ldap

Reply via email to