]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/blob
a02f7d505c77408ee08856398b980c74fd60b97e
[thirdparty/openembedded/openembedded-core-contrib.git] /
1 From 185b3c0cdd564901133e530ddd30853f65151622 Mon Sep 17 00:00:00 2001
2 From: Khem Raj <raj.khem@gmail.com>
3 Date: Sat, 27 Jan 2018 13:14:03 -0800
4 Subject: [PATCH] build-sys: Check if memfd_create is already defined
5
6 glibc 2.27+ has introduced this function
7
8 BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104815
9 Signed-off-by: Khem Raj <raj.khem@gmail.com>
10 ---
11 Upstream-Status: Submitted
12
13 configure.ac | 7 +++++++
14 src/pulsecore/memfd-wrappers.h | 4 ++--
15 2 files changed, 9 insertions(+), 2 deletions(-)
16
17 diff --git a/configure.ac b/configure.ac
18 index 77b5ff5..aa97944 100644
19 --- a/configure.ac
20 +++ b/configure.ac
21 @@ -603,6 +603,10 @@ AS_IF([test "x$enable_memfd" != "xno"],
22 AC_CHECK_DECL(SYS_memfd_create, [HAVE_MEMFD=1], [HAVE_MEMFD=0], [#include <sys/syscall.h>]),
23 [HAVE_MEMFD=0])
24
25 +AS_IF([test "x$enable_memfd" != "xno"],
26 + AC_CHECK_FUNC(memfd_create, [HAVE_MEMFD_CREATE=1], [HAVE_MEMFD_CREATE=0], [#include <sys/mman.h>]),
27 + [HAVE_MEMFD_CREATE=0])
28 +
29 AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
30 [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
31 *** Use linux v3.17 or higher for such a feature.])])
32 @@ -610,6 +614,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
33 AC_SUBST(HAVE_MEMFD)
34 AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
35 AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
36 +AC_SUBST(HAVE_MEMFD_CREATE)
37 +AM_CONDITIONAL([HAVE_MEMFD_CREATE], [test "x$HAVE_MEMFD_CREATE" = x1])
38 +AS_IF([test "x$HAVE_MEMFD_CREATE" = "x1"], AC_DEFINE([HAVE_MEMFD_CREATE], 1, [Define to 1 if you have the `memfd_create` function.]))
39
40 #### X11 (optional) ####
41
42 diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h
43 index 3bed9b2..87ed758 100644
44 --- a/src/pulsecore/memfd-wrappers.h
45 +++ b/src/pulsecore/memfd-wrappers.h
46 @@ -32,11 +32,11 @@
47 * defined in the kernel header file <linux/fcntl.h>, that file as
48 * a whole conflicts with the original glibc header <fnctl.h>.
49 */
50 -
51 +#ifndef HAVE_MEMFD_CREATE
52 static inline int memfd_create(const char *name, unsigned int flags) {
53 return syscall(SYS_memfd_create, name, flags);
54 }
55 -
56 +#endif
57 /* memfd_create(2) flags */
58
59 #ifndef MFD_CLOEXEC
60 --
61 2.16.1
62