Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Building LDAP C SDK in Windows: libsasl.lib not found

80 views
Skip to first unread message

Mathias Fricke

unread,
Mar 21, 2012, 9:21:21 AM3/21/12
to dev-te...@lists.mozilla.org
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

Mathias Fricke

unread,
Mar 21, 2012, 11:39:32 AM3/21/12
to dev-te...@lists.mozilla.org
i just found a workaround:

export
SASL_LIBS=c:/Users/foo/Desktop/SW_Development/CMU_2.1.25/lib/libsasl.lib

--with-sasl-lib=/c/Users/foo/Desktop/SW_Development/CMU_2.1.25/lib/
converts to
-L/c/Users/foo/Desktop/SW_Development/CMU_2.1.25/lib/
and that in turn to
/Lc:/Users/foo/Desktop/SW_Development/CMU_2.1.25/lib/
but /L seems not to be a valid option to LINK.EXE (at least the one of
VS2010)
> _______________________________________________
> dev-tech-ldap mailing list
> dev-te...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-tech-ldap


--
--------------------------------------------------
Mathias Fricke
mfr...@modula4.de

Modula4 (Einzelunternehmen)
Michael Gellner
Gleimstr. 55
10437 Berlin
Tel: +49 (30) 400 53 682
Fax: +49 (30) 400 53 683

Allgemein: in...@modula4.de
Support: http://support.modula4.com/
Web: http://www.modula4.de/

Digital Asset Management - We Deliver
Dedicated Experts | Complete Solutions | Real Results
--------------------------------------------------

Publizieren Sie auf dem iPad und Android Tablets mit WoodWing:
http://www.modula4.com/de/solutions/products/woodwing

0 new messages