[Buildroot] Host xmllint dynamic link failure

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Sep 26 07:30:25 UTC 2012


Dear Arnout Vandecappelle,

On Wed, 26 Sep 2012 01:55:15 +0200, Arnout Vandecappelle wrote:
>   During one of my test builds, I ran into a dynamic linker failure
> when running xmllint:
> 
> /usr/bin/xmllint: relocation error: /usr/bin/xmllint: symbol
> xmlShell, version LIBXML2_2.4.30 not defined in file libxml2.so.2
> with link time reference
> 
>   The problem is that we compile with
> LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:", so that our host-libxml2 is
> used instead of the one in /usr/lib.  Or, the problem is
> that /usr/bin/xmllint is used instead of
> $(HOST_DIR)/usr/bin/xmllint.  The path is hardcoded in xmlto...
> 
>   Possible solutions:
> 
> - Build host-xmlto.  This will require updating all packages using
> xmlto to add host-xmlto to the dependencies.

I am not sure to understand. Aren't we already building xmllint for the
host? I don't follow your explanation entirely here. Anyway, if there
is something from the host that we're using and that isn't part of the
mandatory Buildroot dependencies, then it should definitely be built as
a dependency, yes.

> - Remove LD_LIBRARY_PATH and rely on rpath to find the libraries.
> This may require patching some of the host packages.  At first sight,
> it doesn't look too bad, however.

Normally yes, I think we should remove LD_LIBRARY_PATH. The idea is to
build all binaries installed in $(HOST_DIR)/usr/bin with a rpath, and
that is normally sufficient to let them find the libraries.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the buildroot mailing list