* [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function [not found] <15F6EE92C1F851C1.19684@lists.yoctoproject.org> @ 2020-02-26 14:58 ` Oleksii Kurochko 2020-02-27 21:49 ` Bruce Ashfield [not found] ` <15F760BA05EEFA48.29399@lists.yoctoproject.org> 0 siblings, 2 replies; 3+ messages in thread From: Oleksii Kurochko @ 2020-02-26 14:58 UTC (permalink / raw) To: meta-virtualization; +Cc: Oleksii Kurochko 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> --- ...-rename-internal-memfd_create-to-mem.patch | 46 +++++++++++++++++++ recipes-containers/lxc/lxc_3.2.1.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch 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 000000000000..9d5b5b8aefc1 --- /dev/null +++ b/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch @@ -0,0 +1,46 @@ +From b1694cccddadc8b084cd9eb502d9e86e0728709b Mon Sep 17 00:00:00 2001 +From: Patrick Havelange <patrick.havelange@essensium.com> +Date: Tue, 22 Oct 2019 12:29:54 +0200 +Subject: [PATCH v2] syscall_wrappers: rename internal memfd_create to + memfd_create_lxc + +In case the internal memfd_create has to be used, make sure we don't +clash with the already existing memfd_create function from glibc. + +This can happen if this glibc function is a stub. In this case, at +./configure time, the test for this function will return false, however +the declaration of that function is still available. This leads to +compilation errors. + +Upstream-Status: Backport [lxc-3.2.1 https://github.com/lxc/lxc/pull/3168] + +Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com> +(cherry picked from commit 40b06c78773dfd5e12e568a576b1abb133f61b71) +Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com> +--- + v2: added Upstream-Status + + src/lxc/syscall_wrappers.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h +index ce67da5b5308..b7edba63f5d7 100644 +--- a/src/lxc/syscall_wrappers.h ++++ b/src/lxc/syscall_wrappers.h +@@ -74,7 +74,7 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3, + #endif + + #ifndef HAVE_MEMFD_CREATE +-static inline int memfd_create(const char *name, unsigned int flags) { ++static inline int memfd_create_lxc(const char *name, unsigned int flags) { + #ifndef __NR_memfd_create + #if defined __i386__ + #define __NR_memfd_create 356 +@@ -113,6 +113,7 @@ static inline int memfd_create(const char *name, unsigned int flags) { + return -1; + #endif + } ++#define memfd_create memfd_create_lxc + #else + extern int memfd_create(const char *name, unsigned int flags); + #endif diff --git a/recipes-containers/lxc/lxc_3.2.1.bb b/recipes-containers/lxc/lxc_3.2.1.bb index bedcf13723d2..9592dd9b4e68 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 \ file://0002-container.conf-Add-option-to-disable-session-keyring.patch \ file://dnsmasq.conf \ file://lxc-net \ + file://0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch \ " SRC_URI[md5sum] = "4886c8d1c8e221fe526eefcb47857b85" -- 2.19.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function 2020-02-26 14:58 ` [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function Oleksii Kurochko @ 2020-02-27 21:49 ` Bruce Ashfield [not found] ` <15F760BA05EEFA48.29399@lists.yoctoproject.org> 1 sibling, 0 replies; 3+ messages in thread From: Bruce Ashfield @ 2020-02-27 21:49 UTC (permalink / raw) To: olkuroch; +Cc: meta-virtualization merged. Bruce In message: [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function on 26/02/2020 Oleksii Kurochko via Lists.Yoctoproject.Org wrote: > 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> > --- > ...-rename-internal-memfd_create-to-mem.patch | 46 +++++++++++++++++++ > recipes-containers/lxc/lxc_3.2.1.bb | 1 + > 2 files changed, 47 insertions(+) > create mode 100644 recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch > > 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 000000000000..9d5b5b8aefc1 > --- /dev/null > +++ b/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch > @@ -0,0 +1,46 @@ > +From b1694cccddadc8b084cd9eb502d9e86e0728709b Mon Sep 17 00:00:00 2001 > +From: Patrick Havelange <patrick.havelange@essensium.com> > +Date: Tue, 22 Oct 2019 12:29:54 +0200 > +Subject: [PATCH v2] syscall_wrappers: rename internal memfd_create to > + memfd_create_lxc > + > +In case the internal memfd_create has to be used, make sure we don't > +clash with the already existing memfd_create function from glibc. > + > +This can happen if this glibc function is a stub. In this case, at > +./configure time, the test for this function will return false, however > +the declaration of that function is still available. This leads to > +compilation errors. > + > +Upstream-Status: Backport [lxc-3.2.1 https://github.com/lxc/lxc/pull/3168] > + > +Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com> > +(cherry picked from commit 40b06c78773dfd5e12e568a576b1abb133f61b71) > +Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com> > +--- > + v2: added Upstream-Status > + > + src/lxc/syscall_wrappers.h | 3 ++- > + 1 file changed, 2 insertions(+), 1 deletion(-) > + > +diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h > +index ce67da5b5308..b7edba63f5d7 100644 > +--- a/src/lxc/syscall_wrappers.h > ++++ b/src/lxc/syscall_wrappers.h > +@@ -74,7 +74,7 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3, > + #endif > + > + #ifndef HAVE_MEMFD_CREATE > +-static inline int memfd_create(const char *name, unsigned int flags) { > ++static inline int memfd_create_lxc(const char *name, unsigned int flags) { > + #ifndef __NR_memfd_create > + #if defined __i386__ > + #define __NR_memfd_create 356 > +@@ -113,6 +113,7 @@ static inline int memfd_create(const char *name, unsigned int flags) { > + return -1; > + #endif > + } > ++#define memfd_create memfd_create_lxc > + #else > + extern int memfd_create(const char *name, unsigned int flags); > + #endif > diff --git a/recipes-containers/lxc/lxc_3.2.1.bb b/recipes-containers/lxc/lxc_3.2.1.bb > index bedcf13723d2..9592dd9b4e68 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 \ > file://0002-container.conf-Add-option-to-disable-session-keyring.patch \ > file://dnsmasq.conf \ > file://lxc-net \ > + file://0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch \ > " > > SRC_URI[md5sum] = "4886c8d1c8e221fe526eefcb47857b85" > -- > 2.19.1 > > ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <15F760BA05EEFA48.29399@lists.yoctoproject.org>]
* Re: [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function [not found] ` <15F760BA05EEFA48.29399@lists.yoctoproject.org> @ 2020-02-27 21:56 ` Bruce Ashfield 0 siblings, 0 replies; 3+ messages in thread From: Bruce Ashfield @ 2020-02-27 21:56 UTC (permalink / raw) To: Bruce Ashfield; +Cc: olkuroch, meta-virtualization On Thu, Feb 27, 2020 at 4:49 PM Bruce Ashfield via Lists.Yoctoproject.Org <bruce.ashfield=gmail.com@lists.yoctoproject.org> wrote: > > merged. Somehow the author field of this was incorrect, so I had to amend and manually set it to your name. Not sure how it happened, but we'll have to keep an eye out for it in the future Bruce > > Bruce > > In message: [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function > on 26/02/2020 Oleksii Kurochko via Lists.Yoctoproject.Org wrote: > > > 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> > > --- > > ...-rename-internal-memfd_create-to-mem.patch | 46 +++++++++++++++++++ > > recipes-containers/lxc/lxc_3.2.1.bb | 1 + > > 2 files changed, 47 insertions(+) > > create mode 100644 recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch > > > > 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 000000000000..9d5b5b8aefc1 > > --- /dev/null > > +++ b/recipes-containers/lxc/files/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch > > @@ -0,0 +1,46 @@ > > +From b1694cccddadc8b084cd9eb502d9e86e0728709b Mon Sep 17 00:00:00 2001 > > +From: Patrick Havelange <patrick.havelange@essensium.com> > > +Date: Tue, 22 Oct 2019 12:29:54 +0200 > > +Subject: [PATCH v2] syscall_wrappers: rename internal memfd_create to > > + memfd_create_lxc > > + > > +In case the internal memfd_create has to be used, make sure we don't > > +clash with the already existing memfd_create function from glibc. > > + > > +This can happen if this glibc function is a stub. In this case, at > > +./configure time, the test for this function will return false, however > > +the declaration of that function is still available. This leads to > > +compilation errors. > > + > > +Upstream-Status: Backport [lxc-3.2.1 https://github.com/lxc/lxc/pull/3168] > > + > > +Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com> > > +(cherry picked from commit 40b06c78773dfd5e12e568a576b1abb133f61b71) > > +Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com> > > +--- > > + v2: added Upstream-Status > > + > > + src/lxc/syscall_wrappers.h | 3 ++- > > + 1 file changed, 2 insertions(+), 1 deletion(-) > > + > > +diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h > > +index ce67da5b5308..b7edba63f5d7 100644 > > +--- a/src/lxc/syscall_wrappers.h > > ++++ b/src/lxc/syscall_wrappers.h > > +@@ -74,7 +74,7 @@ static inline long __keyctl(int cmd, unsigned long arg2, unsigned long arg3, > > + #endif > > + > > + #ifndef HAVE_MEMFD_CREATE > > +-static inline int memfd_create(const char *name, unsigned int flags) { > > ++static inline int memfd_create_lxc(const char *name, unsigned int flags) { > > + #ifndef __NR_memfd_create > > + #if defined __i386__ > > + #define __NR_memfd_create 356 > > +@@ -113,6 +113,7 @@ static inline int memfd_create(const char *name, unsigned int flags) { > > + return -1; > > + #endif > > + } > > ++#define memfd_create memfd_create_lxc > > + #else > > + extern int memfd_create(const char *name, unsigned int flags); > > + #endif > > diff --git a/recipes-containers/lxc/lxc_3.2.1.bb b/recipes-containers/lxc/lxc_3.2.1.bb > > index bedcf13723d2..9592dd9b4e68 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 \ > > file://0002-container.conf-Add-option-to-disable-session-keyring.patch \ > > file://dnsmasq.conf \ > > file://lxc-net \ > > + file://0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch \ > > " > > > > SRC_URI[md5sum] = "4886c8d1c8e221fe526eefcb47857b85" > > -- > > 2.19.1 > > > > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-27 21:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <15F6EE92C1F851C1.19684@lists.yoctoproject.org>
2020-02-26 14:58 ` [meta-virtualization][PATCH v2] lxc: Backport patch that renames memfd_create() function Oleksii Kurochko
2020-02-27 21:49 ` Bruce Ashfield
[not found] ` <15F760BA05EEFA48.29399@lists.yoctoproject.org>
2020-02-27 21:56 ` Bruce Ashfield
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.