Greetings! Do you really need static linking?
On Thu, Sep 8, 2011 at 10:40 AM, 84.le0n <[email protected]> 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 <[email protected]> > 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 > [email protected] > http://www.aleksey.com/mailman/listinfo/xmlsec > > _______________________________________________ > xmlsec mailing list > [email protected] > http://www.aleksey.com/mailman/listinfo/xmlsec > > -- SY, Dmitry Belyavsky _______________________________________________ xmlsec mailing list [email protected] http://www.aleksey.com/mailman/listinfo/xmlsec
