summaryrefslogtreecommitdiffstats
path: root/recipes-containers
diff options
context:
space:
mode:
authorOleksii Kurochko <olkuroch@cisco.com>2020-02-26 06:58:13 -0800
committerBruce Ashfield <bruce.ashfield@gmail.com>2020-02-27 16:54:44 -0500
commit15e9fc23ecaf0607880211c96818ffea8e4044fc (patch)
tree00bc42d7ef8482316d3067074371ba060a3a7e6f /recipes-containers
parentf2f36a8061c600b35b5f0ce1599d59f1d144a3aa (diff)
downloadmeta-virtualization-15e9fc23ecaf0607880211c96818ffea8e4044fc.tar.gz
lxc: Backport patch that renames memfd_create() function
When Autotools makes configuration of LXC, the check of the memfd_create() function fails because __stub_memfd_create and __stub___memfd_create (The GNU C library defines this for functions which it implements to always fail with ENOSYS) are defined in Glibc, which leads to the fact that the macro HAVE_MEMFD_CREATE is not defined and LXC provides defintion of the memfd_create() function as static inline which in turn conflicts with a definition from the <bits/mman-shared.h> file and causes an error: | In file included from ../../../lxc-3.2.1/src/lxc/conf.c:79: | <src_path>//lxc/syscall_wrappers.h:77:19: error: static declaration | of 'memfd_create' follows non-static declaration | | static inline int memfd_create(const char *name, unsigned int flags) { | | ^~~~~~~~~~~~ | In file included from /usr/include/bits/mman-linux.h:111, | from /usr/include/bits/mman.h:34, | from /usr/include/sys/mman.h:41, | from <src_path>/lxc-3.2.1/src/lxc/conf.c:42: | /usr/include/bits/mman-shared.h:50:5: note: previous declaration | of 'memfd_create' was here | | int memfd_create (const char *__name, unsigned int __flags) __THROW; | | ^~~~~~~~~~~~ Upstream PR: https://github.com/lxc/lxc/pull/3168 (merged) Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers')
-rw-r--r--recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch46
-rw-r--r--recipes-containers/lxc/lxc_3.2.1.bb1
2 files changed, 47 insertions, 0 deletions
diff --git a/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch b/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch
new file mode 100644
index 00000000..9d5b5b8a
--- /dev/null
+++ b/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch
@@ -0,0 +1,46 @@
1From b1694cccddadc8b084cd9eb502d9e86e0728709b Mon Sep 17 00:00:00 2001
2From: Patrick Havelange <patrick.havelange@essensium.com>
3Date: Tue, 22 Oct 2019 12:29:54 +0200
4Subject: [PATCH v2] syscall_wrappers: rename internal memfd_create to
5 memfd_create_lxc
6
7In case the internal memfd_create has to be used, make sure we don't
8clash with the already existing memfd_create function from glibc.
9
10This can happen if this glibc function is a stub. In this case, at
11./configure time, the test for this function will return false, however
12the declaration of that function is still available. This leads to
13compilation errors.
14
15Upstream-Status: Backport [lxc-3.2.1 https://github.com/lxc/lxc/pull/3168]
16
17Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com>
18(cherry picked from commit 40b06c78773dfd5e12e568a576b1abb133f61b71)
19Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com>
20---
21 v2: added Upstream-Status
22
23 src/lxc/syscall_wrappers.h | 3 ++-
24 1 file changed, 2 insertions(+), 1 deletion(-)
25
26diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h
27index ce67da5b5308..b7edba63f5d7 100644
28--- a/src/lxc/syscall_wrappers.h
29+++ b/src/lxc/syscall_wrappers.h
30@@ -74,7 +74,7 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3,
31 #endif
32
33 #ifndef HAVE_MEMFD_CREATE
34-static inline int memfd_create(const char *name, unsigned int flags) {
35+static inline int memfd_create_lxc(const char *name, unsigned int flags) {
36 #ifndef __NR_memfd_create
37 #if defined __i386__
38 #define __NR_memfd_create 356
39@@ -113,6 +113,7 @@ static inline int memfd_create(const char *name, unsigned int flags) {
40 return -1;
41 #endif
42 }
43+#define memfd_create memfd_create_lxc
44 #else
45 extern int memfd_create(const char *name, unsigned int flags);
46 #endif
diff --git a/recipes-containers/lxc/lxc_3.2.1.bb b/recipes-containers/lxc/lxc_3.2.1.bb
index bedcf137..9592dd9b 100644
--- a/recipes-containers/lxc/lxc_3.2.1.bb
+++ b/recipes-containers/lxc/lxc_3.2.1.bb
@@ -49,6 +49,7 @@ SRC_URI = "http://linuxcontainers.org/downloads/${BPN}-${PV}.tar.gz \
49 file://0002-container.conf-Add-option-to-disable-session-keyring.patch \ 49 file://0002-container.conf-Add-option-to-disable-session-keyring.patch \
50 file://dnsmasq.conf \ 50 file://dnsmasq.conf \
51 file://lxc-net \ 51 file://lxc-net \
52 file://0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch \
52 " 53 "
53 54
54SRC_URI[md5sum] = "4886c8d1c8e221fe526eefcb47857b85" 55SRC_URI[md5sum] = "4886c8d1c8e221fe526eefcb47857b85"