[xmlsec] how to compile an application using xmlsec without libdl

Beatriz Hargrave hargrave at vonbraunlabs.com.br
Mon Apr 24 11:50:07 PDT 2006


Hi Aleksy, 

Thanks a lot for your answer !

I am not using NSS (./configure --with-nss=no). Also, I was able to make an application that used only openssl and it compile without the need of libdl. The problem is when I use xmlsec. 

So, I erased all the "-ldl" from configure.in of libxmlsec (also from xmlsec1Conf.sh and libxmlsec1-openssl.la) and compiled xmlsec to uclinux. This worked. 

When I try to compile the application I have (vbsign1) to uclinux, somehow it still asks for -ldl. 

I erased (manually) all the "-ldl" of the following instruction, but then I get the following error: 

sh-3.1$ m68k-elf-gcc -m5307 -DCONFIG_COLDFIRE -Os -g -fomit-frame-pointer -m5307 -DCONFIG_COLDFIRE -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -DXMLSEC_CRYPTO_OPENSSL -I/home/usuarios/hargrave/uClinux-vb/include -I/home/usuarios/hargrave/uClinux-vb/include/include -I/home/usuarios/hargrave/uClinux-vb/include/openssl -I/home/usuarios/hargrave/uClinux-vb/lib/libssl -I/home/usuarios/hargrave/uClinux-vb/lib/libssl/ssl -I/home/usuarios/hargrave/uClinux-vb/lib/libssl/crypto -I/home/usuarios/hargrave/uClinux-vb/uClibc -I/home/usuarios/hargrave/uClinux-vb/uClibc/include -I/home/usuarios/hargrave/uclib6/include -I/home/usuarios/hargrave/uclib6/include/libxml2 -I/home/usuarios/hargrave/uclib6/include/libxslt -I/home/usuarios/hargrave/uclib6/include/libexslt -I/home/usuarios/hargrave/uclib6/include/xmlsec1 -Wall -fno-common -fno-builtin -nostdinc -DUSE_SYSLOG -Wl,-elf2flt -Wl,-move-rodata -nostartfiles /home/usuarios/hargrave/uClinux-vb/lib/crt0.o -o vbsign1 vbsign1.o  -L/home/usuarios/hargrave/uClinux-vb/lib -L/home/usuarios/hargrave/uClinux-vb/lib/libssl -L/home/usuarios/hargrave/uclib6/lib -lcrypto -lssl /home/usuarios/hargrave/uclib6/lib/libxmlsec1-openssl.a /home/usuarios/hargrave/uclib6/lib/libxmlsec1.a /home/usuarios/hargrave/uclib6/lib/libxslt.a /home/usuarios/hargrave/uclib6/lib/libxml2.a -lpthread -lm -lc
warning: .rodata section contains relocations
vbsign1.elf2flt: In function `xmlSecOpenSSLAppInit':
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:51: undefined reference to `ERR_load_crypto_strings'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:52: undefined reference to `OPENSSL_add_all_algorithms_noconf'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:54: undefined reference to `RAND_status'
vbsign1.elf2flt: In function `xmlSecOpenSSLAppShutdown':
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:87: undefined reference to `RAND_cleanup'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:88: undefined reference to `EVP_cleanup'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:95: undefined reference to `CRYPTO_cleanup_all_ex_data'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:99: undefined reference to `ERR_remove_state'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:100: undefined reference to `ERR_free_strings'
vbsign1.elf2flt: In function `xmlSecOpenSSLAppKeyLoad':
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:127: undefined reference to `BIO_new_file'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:148: undefined reference to `BIO_free'
/home/usuarios/hargrave/tmp/xml/uC6/xmlsec1-1.2.9/src/openssl/app.c:152: undefined reference to `BIO_free'
vbsign1.elf2flt: In function `xmlSecOpenSSLAppKeyLoadMemory':
....

Does that mean, that xmlsec does not work without libdl (-ldl), or is there a way of making xmlsec work without libdl (-ldl) ? 

Thanks a lot, 
Beatriz. 





On Thu, 20 Apr 2006 13:43:13 -0700, Aleksey Sanin <aleksey at aleksey.com> escreveu:

> De: Aleksey Sanin <aleksey at aleksey.com>
> Data: Thu, 20 Apr 2006 13:43:13 -0700
> Para: Beatriz Hargrave <hargrave at vonbraunlabs.com.br>
> Assunto: Re: [xmlsec] how to compile an application using xmlsec without libdl
> 
> I believe OpenSSL and NSS require -ldl (at least on my system):
> 
> $ pkg-config --libs openssl
> -L/usr/kerberos/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err 
> -lk5crypto -lresolv -ldl -lz
> 
> $ pkg-config --libs mozilla-nss
> -L/usr/lib/mozilla-1.7.12 -lnss3 -lsmime3 -lssl3 -lsoftokn3 -lplds4 
> -lplc4 -lnspr4 -lpthread -ldl
> 
> You might need to hack xmlsec/configure.in file and remove
> all references to "-ldl" if it is not the case for you.
> 
> Aleksey
> 
> 
> 
> Beatriz Hargrave wrote:
> > Hello, 
> > 
> > I have ported xmlsec to uclinux (Coldfire). However I am not able to compile a simple application because of the following error: 
> > 
> > /usr/local/m68k-elf/bin/ld.real: cannot find -ldl
> > collect2: ld returned 1 exit status
> > make[2]: *** [vbsign1] Error 1
> > make[2]: Leaving directory `/tmp/vbsign1/src'
> > make[1]: *** [all-recursive] Error 1
> > make[1]: Leaving directory `/tmp/vbsign1'
> > make: *** [all] Error 2
> > 
> > 
> > I have found that uclinux does not really have libdl: "I don't think we have ever supported the dl_ functions in libraries that work on uClinux platforms. General shared libs work, but they don't use the dl_ functions".
> > 
> > Is there a way of having an application, using xmlsec and not needing libdl ? 
> > 
> > Thank you very much, 
> > Beatriz. 
> > 
> > 
> > _______________________________________________
> > xmlsec mailing list
> > xmlsec at aleksey.com
> > http://www.aleksey.com/mailman/listinfo/xmlsec
> 
> 
> 



More information about the xmlsec mailing list