* [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
* 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.