diff options
author | Ross Burton <ross.burton@intel.com> | 2018-01-30 12:18:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-01-30 12:53:16 +0000 |
commit | e5e89cfb7bc2231ac4fcc16f4cb4f74d806136c4 (patch) | |
tree | e97ac255b99949b6a97cb3ffdef71cf79007d1ed /meta | |
parent | 63549ea4033a1608b705e7b35cb9437087fc05f3 (diff) | |
download | poky-e5e89cfb7bc2231ac4fcc16f4cb4f74d806136c4.tar.gz |
pulseaudio: improve glibc 2.27 patch
This patch looks like it will be merged upstream.
(From OE-Core rev: 59c5fb3c80eb1699caad8dc2175ab1eed67bf66e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
3 files changed, 67 insertions, 63 deletions
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Check-if-memfd_create-is-already-defined.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Check-if-memfd_create-is-already-defined.patch deleted file mode 100644 index a02f7d505c..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Check-if-memfd_create-is-already-defined.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
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 | |||
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch new file mode 100644 index 0000000000..0391f3785b --- /dev/null +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch | |||
@@ -0,0 +1,66 @@ | |||
1 | From 0cb66c0c5aafd48b63a755860746e70afb332c8d Mon Sep 17 00:00:00 2001 | ||
2 | From: Tanu Kaskinen <tanuk@iki.fi> | ||
3 | Date: Wed, 24 Jan 2018 03:51:49 +0200 | ||
4 | Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already | ||
5 | defined | ||
6 | |||
7 | glibc 2.27 is to be released soon, and it will provide memfd_create(). | ||
8 | If glibc provides the function, we must not define it ourselves, | ||
9 | otherwise building fails due to conflict between the two implementations | ||
10 | of the same function. | ||
11 | |||
12 | BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733 | ||
13 | --- | ||
14 | Upstream-Status: Submitted [https://bugs.freedesktop.org/attachment.cgi?id=136927] | ||
15 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
16 | |||
17 | configure.ac | 3 +++ | ||
18 | src/pulsecore/memfd-wrappers.h | 7 ++++--- | ||
19 | 2 files changed, 7 insertions(+), 3 deletions(-) | ||
20 | |||
21 | diff --git a/configure.ac b/configure.ac | ||
22 | index 77b5ff5..3a71fd8 100644 | ||
23 | --- a/configure.ac | ||
24 | +++ b/configure.ac | ||
25 | @@ -607,6 +607,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"], | ||
26 | [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory. | ||
27 | *** Use linux v3.17 or higher for such a feature.])]) | ||
28 | |||
29 | +AS_IF([test "x$HAVE_MEMFD" = "x1"], | ||
30 | + AC_CHECK_FUNCS([memfd_create])) | ||
31 | + | ||
32 | AC_SUBST(HAVE_MEMFD) | ||
33 | AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1]) | ||
34 | AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.])) | ||
35 | diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h | ||
36 | index 3bed9b2..c7aadfd 100644 | ||
37 | --- a/src/pulsecore/memfd-wrappers.h | ||
38 | +++ b/src/pulsecore/memfd-wrappers.h | ||
39 | @@ -20,13 +20,14 @@ | ||
40 | License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. | ||
41 | ***/ | ||
42 | |||
43 | -#ifdef HAVE_MEMFD | ||
44 | +#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE) | ||
45 | |||
46 | #include <sys/syscall.h> | ||
47 | #include <fcntl.h> | ||
48 | |||
49 | /* | ||
50 | - * No glibc wrappers exist for memfd_create(2), so provide our own. | ||
51 | + * Before glibc version 2.27 there was no wrapper for memfd_create(2), | ||
52 | + * so we have to provide our own. | ||
53 | * | ||
54 | * Also define memfd fcntl sealing macros. While they are already | ||
55 | * defined in the kernel header file <linux/fcntl.h>, that file as | ||
56 | @@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) { | ||
57 | #define F_SEAL_WRITE 0x0008 /* prevent writes */ | ||
58 | #endif | ||
59 | |||
60 | -#endif /* HAVE_MEMFD */ | ||
61 | +#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */ | ||
62 | |||
63 | #endif | ||
64 | -- | ||
65 | 2.16.1 | ||
66 | |||
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_11.1.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_11.1.bb index 94278eb34e..245302d2bc 100644 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio_11.1.bb +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_11.1.bb | |||
@@ -4,7 +4,7 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ | |||
4 | file://0001-padsp-Make-it-compile-on-musl.patch \ | 4 | file://0001-padsp-Make-it-compile-on-musl.patch \ |
5 | file://0001-client-conf-Add-allow-autospawn-for-root.patch \ | 5 | file://0001-client-conf-Add-allow-autospawn-for-root.patch \ |
6 | file://volatiles.04_pulse \ | 6 | file://volatiles.04_pulse \ |
7 | file://0001-build-sys-Check-if-memfd_create-is-already-defined.patch \ | 7 | file://0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch \ |
8 | " | 8 | " |
9 | SRC_URI[md5sum] = "390de38231d5cdd6b43ada8939eb74f1" | 9 | SRC_URI[md5sum] = "390de38231d5cdd6b43ada8939eb74f1" |
10 | SRC_URI[sha256sum] = "f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e" | 10 | SRC_URI[sha256sum] = "f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e" |