[xmlsec] Building xmlsec for iOs
Dmitry Belyavsky
beldmit at gmail.com
Wed Sep 7 23:38:03 PDT 2011
Greetings!
Do you really need static linking?
On Thu, Sep 8, 2011 at 10:40 AM, 84.le0n <84.le0n at gmail.com> wrote:
> Hi aleksey,
> I'm trying again to compile for iOS but I need a check about a symbol I've
> found.
> I'm trying to concentrate and resolve the problem on _xmlSecOpenSSLAppInit
> that is undefined in apps/crypto.c (as many other in this file) but I've
> found that this symbol is defined in another header.
> In fact I've noticed that _xmlSecOpenSSLAppInit is undefined inside
> src/openssl/libxmlsec1_openssl_la-crypto.o
> and is undefined in
> apps/crypto.o (that stops building)
> but is defined inside
> src/openssl/libxmlsec1_openssl_la-apps.o !
> Can you check if this is the normal state of symbols definition in your
> correct builds ?
> Maybe makefile rules doesn't have the needed -l ? Could it depend on
> configure switch?
> Thank you!
>
> Il giorno 18/ago/2011, alle ore 16:50, Aleksey Sanin <aleksey at aleksey.com>
> ha scritto:
>
> Sorry, I am not familiar with iOS compilation so it is hard for me to say
> something definite but it looks like you there is a problem with function
> name mangling.
>
> Aleksey
>
> On 8/18/11 5:34 AM, 84.le0n wrote:
>
> Hi all,
> after some test now I get another error, during make phase.
> These are the steps I've done, configuring for "build i386-apple-darwin10"
> and "host i686-apple-darwin10" (for iOs simulator included in SDK) :
> 1) make of static libxml2.a (not using original libxml2.dylib because xmlsec
> requires newer version that that offered by Apple )
> 2) using this libxml2.a static lib I've built a static libxslt.a , version
> 1.1.26
> 3) then I've builded openssl libs (libcrypto.a and libssl.a), version
> 1.0.0.d
> 4) the last is xmlsec version 1.2.18, configured as follow
> ------------------ from here ------------------------
>
> ./configure \
> --prefix=<destination_path> \
> --build=i386-apple-darwin10 \
> --host=i686-apple-darwin10 \
> --enable-static \
> --enable-static-linking \
> --disable-shared \
> --disable-crypto-dl \
> --disable-apps-crypto-dl \
> --disable-mscrypto \
> --without-nspr \
> --without-nss \
> --without-seamonkey-ver \
> --without-mozilla-ver \
> --without-gcrypt \
> --without-gnutls \
> --with-default-crypto=openssl \
> --with-libxml=<path_of_my_libxml2> \
> --with-libxslt=<path_of_my_libxslt> \
> --with-openssl=<path_of_my_openssl>
>
> ------------------ to here ------------------------
>
> The configuration runs without problems and finds my libs correctly, but
> doing make I get this error
> ------------------ from here ------------------------
>
> Undefined symbols:
> "_xmlSecOpenSSLAppDefaultKeysMngrInit", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrInit in crypto.o
> "_xmlSecOpenSSLTransformDes3CbcGetKlass", referenced from:
> _xmlSecAppEncryptTmpl in xmlsec.o
> "_xmlSecOpenSSLAppKeysMngrCertLoad", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrCertLoad in crypto.o
> "_xmlSecOpenSSLAppDefaultKeysMngrLoad", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrLoad in crypto.o
> "_xmlSecOpenSSLAppDefaultKeysMngrSave", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrSave in crypto.o
> "_xmlSecOpenSSLAppKeyLoad", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad in crypto.o
> _xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad in crypto.o
> "_xmlSecOpenSSLShutdown", referenced from:
> _xmlSecAppCryptoShutdown in crypto.o
> "_xmlSecOpenSSLAppKeyCertLoad", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad in crypto.o
> "_xmlCheckVersion", referenced from:
> _main in xmlsec.o
> "_xmlSecOpenSSLAppDefaultKeysMngrAdoptKey", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrKeyGenerate in crypto.o
> _xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad in crypto.o
> _xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad in crypto.o
> _xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad in crypto.o
> "_xmlSecOpenSSLAppInit", referenced from:
> _xmlSecAppCryptoInit in crypto.o
> "_xmlSecOpenSSLTransformHmacSha1GetKlass", referenced from:
> _xmlSecAppSignTmpl in xmlsec.o
> "_xmlSecOpenSSLTransformSha1GetKlass", referenced from:
> _xmlSecAppSignTmpl in xmlsec.o
> "_xmlSecOpenSSLInit", referenced from:
> _xmlSecAppCryptoInit in crypto.o
> "_xmlSecOpenSSLAppGetDefaultPwdCallback", referenced from:
> _xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad in crypto.o
> _xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad in crypto.o
> "_xmlSecOpenSSLAppShutdown", referenced from:
> _xmlSecAppCryptoShutdown in crypto.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [xmlsec1] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
>
> ------------------ to here ------------------------
>
>
> The strange thing is that I can't find these symbols with the underscore,
> but without initial underscore I can find many results, an example :
> ------------------ from here ------------------------
> -------------- without underscore -------------
> $ grep -Rin xmlSecOpenSSLAppGetDefaultPwdCallback ./
> Binary file ./xmlsec1-1.2.18/apps/crypto.o matches
> ./xmlsec1-1.2.18/include/xmlsec/openssl/app.h:119:XMLSEC_CRYPTO_EXPORT void*
> xmlSecOpenSSLAppGetDefaultPwdCallback(void);
> ./xmlsec1-1.2.18/include/xmlsec/openssl/symbols.h:109:#define
> xmlSecCryptoAppGetDefaultPwdCallback
> xmlSecOpenSSLAppGetDefaultPwdCallback
> Binary file ./xmlsec1-1.2.18/src/openssl/.libs/libxmlsec1-openssl.a matches
> ./xmlsec1-1.2.18/src/openssl/app.c:1531: *
> xmlSecOpenSSLAppGetDefaultPwdCallback:
> ./xmlsec1-1.2.18/src/openssl/app.c:1538:xmlSecOpenSSLAppGetDefaultPwdCallback(void)
> {
> ./xmlsec1-1.2.18/src/openssl/crypto.c:250:
> gXmlSecOpenSSLFunctions->cryptoAppDefaultPwdCallback =
> (void*)xmlSecOpenSSLAppGetDefaultPwdCallback();
> Binary file ./xmlsec1-1.2.18/src/openssl/libxmlsec1_openssl_la-app.o matches
> Binary file ./xmlsec1-1.2.18/src/openssl/libxmlsec1_openssl_la-crypto.o
> matches
>
> -------------- with underscore -------------
> $ grep -Rin _xmlsecopensslappgetdefault ./
> Binary file ./xmlsec1-1.2.18/apps/crypto.o matches
> Binary file ./xmlsec1-1.2.18/src/openssl/.libs/libxmlsec1-openssl.a matches
> Binary file ./xmlsec1-1.2.18/src/openssl/libxmlsec1_openssl_la-app.o matches
> Binary file ./xmlsec1-1.2.18/src/openssl/libxmlsec1_openssl_la-crypto.o
> matches
> ------------------ to here ------------------------
> Why I obtain this error ?
> Where are defined that symbols with underscore ?
> What can I do to correct this error ?
>
> Thank you for your help!
>
>
>
> _______________________________________________
> xmlsec mailing list
> xmlsec at aleksey.com
> http://www.aleksey.com/mailman/listinfo/xmlsec
>
> _______________________________________________
> xmlsec mailing list
> xmlsec at aleksey.com
> http://www.aleksey.com/mailman/listinfo/xmlsec
>
>
--
SY, Dmitry Belyavsky
More information about the xmlsec
mailing list