All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.