lxc: fix build with static libcap and shared gnutls
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Sat, 7 Apr 2018 16:22:34 +0000 (18:22 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Tue, 8 May 2018 09:13:36 +0000 (11:13 +0200)
Fixes:
 - http://autobuild.buildroot.net/results/b655d6853c25a195df28d91512b3ffb6c654fc90

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Thomas:
 - add Upstream-status
 - use proper numbering]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/lxc/0002-Fix-compilation-with-static-libcap-and-shared-gnutls.patch [new file with mode: 0644]

diff --git a/package/lxc/0002-Fix-compilation-with-static-libcap-and-shared-gnutls.patch b/package/lxc/0002-Fix-compilation-with-static-libcap-and-shared-gnutls.patch
new file mode 100644 (file)
index 0000000..04837b3
--- /dev/null
@@ -0,0 +1,73 @@
+From 49bc916b1daa79cffe38fae32059bcdd985c8c8e Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 7 Apr 2018 15:48:46 +0200
+Subject: [PATCH] Fix compilation with static libcap and shared gnutls
+
+Commit c06ed219c47098f34485d408410b6ecc94a40877 has broken
+compilation with a static libcap and a shared gnutls.
+This results in a build failure on init_lxc_static if gnutls is
+a shared library as init_lxc_static is built with -all-static option
+(see src/lxc/Makefile.am) and AC_CHECK_LIB adds gnutls to LIBS.
+
+This commit fix the issue by removing default behavior of AC_CHECK_LIB
+and handling manually GNUTLS_LIBS and HAVE_LIBGNUTLS
+
+Fixes:
+ - http://autobuild.buildroot.net/results/b655d6853c25a195df28d91512b3ffb6c654fc90
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Upstream-status: https://github.com/lxc/lxc/commit/49bc916b1daa79cffe38fae32059bcdd985c8c8e
+---
+ configure.ac        | 2 +-
+ src/lxc/Makefile.am | 8 ++++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 50c99836..2467bb54 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -263,7 +263,7 @@ AM_CONDITIONAL([ENABLE_GNUTLS], [test "x$enable_gnutls" = "xyes"])
+ AM_COND_IF([ENABLE_GNUTLS],
+       [AC_CHECK_HEADER([gnutls/gnutls.h],[],[AC_MSG_ERROR([You must install the GnuTLS development package in order to compile lxc])])
+-      AC_CHECK_LIB([gnutls], [gnutls_hash_fast],[],[AC_MSG_ERROR([You must install the GnuTLS development package in order to compile lxc])])
++      AC_CHECK_LIB([gnutls], [gnutls_hash_fast],[true],[AC_MSG_ERROR([You must install the GnuTLS development package in order to compile lxc])])
+       AC_SUBST([GNUTLS_LIBS], [-lgnutls])])
+ # SELinux
+diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
+index c8d76836..0662d83d 100644
+--- a/src/lxc/Makefile.am
++++ b/src/lxc/Makefile.am
+@@ -175,6 +175,10 @@ if ENABLE_APPARMOR
+ AM_CFLAGS += -DHAVE_APPARMOR
+ endif
++if ENABLE_GNUTLS
++AM_CFLAGS += -DHAVE_LIBGNUTLS
++endif
++
+ if ENABLE_SELINUX
+ AM_CFLAGS += -DHAVE_SELINUX
+ endif
+@@ -196,7 +200,7 @@ liblxc_la_LDFLAGS = \
+       -Wl,-soname,liblxc.so.$(firstword $(subst ., ,@LXC_ABI@)) \
+       -version-info @LXC_ABI_MAJOR@
+-liblxc_la_LIBADD = $(CAP_LIBS) $(SELINUX_LIBS) $(SECCOMP_LIBS)
++liblxc_la_LIBADD = $(CAP_LIBS) $(GNUTLS_LIBS) $(SELINUX_LIBS) $(SECCOMP_LIBS)
+ bin_SCRIPTS=
+@@ -243,7 +247,7 @@ AM_LDFLAGS = -Wl,-E
+ if ENABLE_RPATH
+ AM_LDFLAGS += -Wl,-rpath -Wl,$(libdir)
+ endif
+-LDADD=liblxc.la @CAP_LIBS@ @SELINUX_LIBS@ @SECCOMP_LIBS@
++LDADD=liblxc.la @CAP_LIBS@ @GNUTLS_LIBS@ @SELINUX_LIBS@ @SECCOMP_LIBS@
+ if ENABLE_TOOLS
+ lxc_attach_SOURCES = tools/lxc_attach.c tools/arguments.c tools/tool_utils.c
+-- 
+2.14.1
+