The system is a recently installed Oneiric Server 64bits
Follow this steps to reproduce:
# apt-get install libxmlsec1-dev build-essential
# cd /usr/share/doc/libxmlsec1-dev/examples/
# make
gcc -g -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_SIZE_T -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1 -I/usr/include/libxml2 -DXMLSEC_OPENSSL_098=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\"openssl\" -DUNIX_SOCKETS -g -L/usr/lib -lxmlsec1-openssl -lxmlsec1 -lxslt -lxml2 -lssl -lcrypto sign1.c -o sign1
/tmp/cc6H9E5X.o: In function `main':
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:50: undefined reference to `xmlInitParser'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:51: undefined reference to `xmlCheckVersion'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:52: undefined reference to `__xmlLoadExtDtdDefaultValue'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:53: undefined reference to `xmlSubstituteEntitiesDefault'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:55: undefined reference to `__xmlIndentTreeOutput'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:59: undefined reference to `xmlSecInit'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:65: undefined reference to `xmlSecCheckVersionExt'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:85: undefined reference to `xmlSecOpenSSLAppInit'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:91: undefined reference to `xmlSecOpenSSLInit'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:101: undefined reference to `xmlSecOpenSSLShutdown'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:104: undefined reference to `xmlSecOpenSSLAppShutdown'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:107: undefined reference to `xmlSecShutdown'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:111: undefined reference to `xsltCleanupGlobals'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:113: undefined reference to `xmlCleanupParser'
/tmp/cc6H9E5X.o: In function `sign_file':
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:138: undefined reference to `xmlParseFile'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:139: undefined reference to `xmlDocGetRootElement'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:145: undefined reference to `xmlDocGetRootElement'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:145: undefined reference to `xmlSecDSigNs'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:145: undefined reference to `xmlSecNodeSignature'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:145: undefined reference to `xmlSecFindNode'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:152: undefined reference to `xmlSecDSigCtxCreate'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:159: undefined reference to `xmlSecOpenSSLAppKeyLoad'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:166: undefined reference to `xmlSecKeySetName'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:172: undefined reference to `xmlSecDSigCtxSign'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:178: undefined reference to `xmlDocDump'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:186: undefined reference to `xmlSecDSigCtxDestroy'
/usr/share/doc/libxmlsec1-dev/examples/sign1.c:190: undefined reference to `xmlFreeDoc'
collect2: ld returned 1 exit status
make: *** [sign1] Error 1
-----------------------------------------------------------------------------------------------------------------
# lsb_release -rd
Description: Ubuntu 11.10
Release: 11.10
# apt-cache policy libxmlsec1-dev
libxmlsec1-dev:
Installed: 1.2.14-1.2
Candidate: 1.2.14-1.2
Version table:
*** 1.2.14-1.2 0
500 http://br.archive.ubuntu.com/ubuntu/ oneiric/universe amd64 Packages
100 /var/lib/dpkg/status
-----------------------------------------------------------------------------------------------------------------
Same steps at Natty compile all sources with no error.
I have my own applications based on this sources and all are failing with the same errors.
the LDFLAGS line in the makefile must be:
LDLIBS += -g $(shell xmlsec1-config --libs)
then it will order the commandline correctly = libraries after objects needing their symbols.
this is due to the linker flag --as-needed being default in oneiric