[xmlsec] trunk build with libraries from non-standard location
Roumen Petrov
xmlsec at roumenpetrov.info
Fri Apr 16 14:25:53 PDT 2010
Hi ,
Now I'm testing xmlsec with openssl 1.0.0 in following linux build
environment:
- libxml (trunk) build outside source tree;
- libxslt (trunk) build outside source tree;
- openssl (1.0.0, non patched source) installed in non-default path,
i.e. linker search paths and not listed in /etc/ld.so.conf;
- xmlsec (trunk) build outside source tree
The xmlsec build system is regenerated with :
- libtool 2.2.6
- automake 1.11
- autoconf 2.65
FSF version fo GNU autotools, i.e. without patches.
Note that is above build system libxml, libxslt and xmlsec directories
contains libtool la-files.The OS is with installed la-file for
libltdl.la. Openssl and libz don't use libtool.
..../configure \
--with-libxml-src=path_to_libxml_build_dir \
--with-libxslt-src=path_to_libxml_build_dir \
--with-openssl=/usr/local/openssl/1.0.0 \
CPPFLAGS=paths_to_libxml&libxslt_sources \
LDFLAGS=-Rpaths_to_openssl
LDFLAGS is my test to avoid issue without to update makefiles - don't help
After build expected is libxmlsec1-openssl.so to list in Dynamic Section:
NEEDED libcrypto.so.1.0.0
Instead this xmlsec openssl crypto is linked with library found in
system default search path.
It seems to this is issue with order of dependent libraries for crypto
modules.
To resolve issue (see attached file xmlsec-test-liborder.patch)
The original xxx_LIBADD list:
- ../libxmlsec1.la (first)
- crypto library (second)
- libxml and libxslt
The file libxmlsec1.la list as dependent library ltdl and libtool add to
search path /usr/lib (!). Next is path for crypto library but as path
/usr/lib is before xmlsec module is linked to system library. If
../libxmlsec1.la is moved to the end of xxx_LIBADD list module is linked
to correct openssl library.
The exact link commands are visible in attached file
xmlsec-origin-library-order-issue.diff
a) long lines are split for easy reading
b) XXX-before.txt is with non-patched Makefile.am
c) XXX-after.txt is with patched Makefile.am
d) the path /usr/local/lib : this path is not expected . May be is from
libxslt.la as is listed in dependency_libs before -lxml2
e) the path /usr/lib : this break correct link and I cannot found why is
in the list. May be from libltdl ?
d) and e) look like issue with libtool as /usr/local/lib is listed in
/etc/ld.so.conf /usr/local/lib and /usr/lib is in compiler(linker)
default search path.
It is very difficult to me to understand where is problem as all libtool
2.2.6 regression tests pass.
Roumen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmlsec-test-liborder.patch
Type: text/x-diff
Size: 1628 bytes
Desc: not available
URL: <http://www.aleksey.com/pipermail/xmlsec/attachments/20100417/2ec3b2a5/attachment.patch>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xmlsec-origin-library-order-issue.diff
URL: <http://www.aleksey.com/pipermail/xmlsec/attachments/20100417/2ec3b2a5/attachment.ksh>
More information about the xmlsec
mailing list