xmlstarlet: fix static linking problem
PATCH 1/1 xmlstarlet: fix static linking problem
Instead of patching configure.ac we can just add the missing libraries to LIBS. Tested with m68k/arm static builds. This makes the patch obsolete and the autoreconf can be avoided.
Fixes:
http://autobuild.buildroot.net/results/02f9fc5884d3a7d460b96937183362d6c3fc6fde
--- ...Fix-static-linking-problem-with-libgcrypt.patch | 46 ---------------------- package/xmlstarlet/xmlstarlet.mk | 4 +- 2 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 package/xmlstarlet/0001-Fix-static-linking-problem-with-libgcrypt.patch
package/xmlstarlet/0001-Fix-static-linking-problem-with-libgcrypt.patch deleted +0 -46
@@ -1,46 +0,0 @@ -From 8cee09b59a8c1ff2ebfc8c46097825d2eafdc4dd Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni <[email protected]> -Date: Sat, 16 May 2015 17:32:13 +0200 -Subject: [PATCH] Fix static linking problem with libgcrypt - -When libgcrypt is used, it is linked with libgpg-error, so we should -also test that libgpg-error is available, and include -lgpg-error in -the LIBS variable. - -This fixes build issues like: - - CCLD xml -/home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-uclinux-uclibc/sysroot/usr/lib/libexslt.a(crypto.o): In function `_exsltCryptoGcryptInit': -crypto.c:(.text+0x112): undefined reference to `_gcry_check_version' -/home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-uclinux-uclibc/sysroot/usr/lib/libexslt.a(crypto.o): In function `_exsltCryptoRc4DecryptFunction': -crypto.c:(.text+0x316): undefined reference to `_gcry_cipher_open' -crypto.c:(.text+0x32a): undefined reference to `_gcry_strerror' -crypto.c:(.text+0x34c): undefined reference to `_gcry_cipher_setkey' - -Which are caused by the AC_SEARCH_LIBS() test for libgcrypt to fail -due to -lgpg-error not been present in the LIBS variable. - -Note that using PKG_CHECK_MODULES() would be a much much better -replacement than this complicated handling of static libraries, but -it's a much more significant effort. - -Signed-off-by: Thomas Petazzoni <[email protected]> ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.ac b/configure.ac -index 4db0129..e378996 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -125,6 +125,7 @@ AS_IF([test "x$STATIC_LIBS" != xno], - [AC_SEARCH_LIBS([libiconv_open], [iconv], [], [], "$USER_LIBS")], "$USER_LIBS") - AC_SEARCH_LIBS([clock_gettime], [rt], [], [], "$USER_LIBS") - AC_SEARCH_LIBS([deflate], [z], [], [], "$USER_LIBS") -+ AC_SEARCH_LIBS([gpg_strerror], [gpg-error], [], [], "$USER_LIBS") - AC_SEARCH_LIBS([gcry_cipher_encrypt], [gcrypt], [], [], "$USER_LIBS") - - # Checks for inet libraries: --- -2.1.0 -
package/xmlstarlet/xmlstarlet.mk +1 -3
@@ -8,8 +8,6 @@ XMLSTARLET_VERSION = 1.6.1 XMLSTARLET_SITE = http://downloads.sourceforge.net/project/xmlstar/xmlstarlet/$(XMLSTARLET_VERSION) XMLSTARLET_LICENSE = MIT XMLSTARLET_LICENSE_FILES = COPYING -# We're patching configure.ac -XMLSTARLET_AUTORECONF = YES XMLSTARLET_DEPENDENCIES += libxml2 libxslt \ $(if $(BR2_PACKAGE_LIBICONV),libiconv)
@@ -21,7 +19,7 @@ XMLSTARLET_CONF_OPTS += \ ifeq ($(BR2_STATIC_LIBS),y) XMLSTARLET_CONF_OPTS += --enable-static-libs -XMLSTARLET_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libxml-2.0`" +XMLSTARLET_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libxml-2.0 libexslt` $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl)" else XMLSTARLET_CONF_OPTS += --disable-static-libs endif
Signature · 1 line
2.1.4
Thomas Petazzoni
AppliedPATCH 1/1 xmlstarlet: fix static linking problem
Hello,
Quoted 7 lines · Waldemar Brodkorb
Instead of patching configure.ac we can just add the missing libraries to LIBS. Tested with m68k/arm static builds. This makes the patch obsolete and the autoreconf can be avoided.
Fixes:
http://autobuild.buildroot.net/results/02f9fc5884d3a7d460b96937183362d6c3fc6fde
Quoted 6 lines
Signed-off-by Waldemar Brodkorb <[email protected]>--- ...Fix-static-linking-problem-with-libgcrypt.patch | 46 ---------------------- package/xmlstarlet/xmlstarlet.mk | 4 +- 2 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 package/xmlstarlet/0001-Fix-static-linking-problem-with-libgcrypt.patch
I've applied to master, thanks. However, it's worth mentioning that:
1. My patch had in fact been merged upstream
(https://sourceforge.net/p/xmlstar/code/ci/0380e4d1e2d02aec868b7199e71bbe56e8161223/)
even if I agree it's by far not the best solution.
2. The proper solution would be to improve the configure.ac script to use pkg-config directly. But since upstream is not very active, and hasn't done a release since 2014, I can understand that you may not been very motivated to do this work.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com