Host xmllint dynamic link failure
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.
- 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.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Dear Arnout Vandecappelle,
Quoted 13 lines · Arnout Vandecappelle
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 referenceThe 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/xmllintis used instead of $(HOST_DIR)/usr/bin/xmllint. The path is hardcoded in xmlto...
Quoted 4 lines
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.
Quoted 3 lines
- Remove
LD_LIBRARY_PATHand 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
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
Quoted 18 lines · Thomas Petazzoni
Dear Arnout Vandecappelle,
Quoted 15 lines · Arnout Vandecappelle
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 referenceThe 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/xmllintis used instead of $(HOST_DIR)/usr/bin/xmllint. The path is hardcoded in xmlto...Possible solutions:
Quoted 8 lines
Quoted 2 lines
- 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.
xmllint yes, but not xmlto. And xmlto hard-codes the path to xmllint
(and to /usr/bin/locale and /usr/bin/xsltproc as well...).
xmlto is used to generate the documentation in the new X11 packages
(not sure if it was the case before already). Disabling documentation also works :-). If xmlto can't be found, the documentation won't be built. That's why you don't see a problem in the autobuilders.
Quoted 7 lines
Quoted 3 lines
- Remove
LD_LIBRARY_PATHand 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.
OK.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Quoted 3 lines · Arnout Vandecappelle
xmlto is used to generate the documentation in the new X11 packages
(not sure if it was the case before already). Disabling documentation also works :-).
Actually that's a third workaround (which just hides the problem :-): we
currently don't have --disable-doc in the configure of host-packages. I don't think we really need to build the docs for host packages, do we?
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Dear Arnout Vandecappelle,
Quoted 4 lines · Arnout Vandecappelle
Actually that's a third workaround (which just hides the
problem :-): we currently don't have --disable-doc in the configure of host-packages. I don't think we really need to build the docs for host packages, do we?
We certainly don't, I'd say.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
Thomas> Dear Arnout Vandecappelle,
Quoted 4 lines · Arnout Vandecappelle
Quoted 4 lines
Actually that's a third workaround (which just hides the problem :-): we currently don't have --disable-doc in the configure of host-packages. I don't think we really need to build the docs for host packages, do we?
Thomas> We certainly don't, I'd say.
Agreed, and also for the new libX11.
Signature · 1 line
Bye, Peter Korsgaard