From 40ac2700d699f2ec46405c151f4ae4b3a0cdf489 Mon Sep 17 00:00:00 2001 From: Tadao Tanikawa Date: Wed, 10 Aug 2016 20:55:25 +0900 Subject: Fix issue that pulseaudio freezes when pausing audio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch is ported from Debian/Ubuntu. When using glibc-2.21 or later on linux kernel < 3.14.3, this issue should be reproduced. Original patch is here: https://sources.debian.net/patches/glibc/2.22-5/arm/local-arm-futex.diff/ AGL needs this patch because the version of kernel for porter board is 3.10 (later kernel is not supported). This patch and recipe is a provisional until upstream (poky) would be fixed. Thanks Isogai-san to find and test this patch. v2: changed bbappend to use SRC_URI_append_arm and used glibc_2.2%.bbappend as wildcard for glibc version (jsmoeller) Change-Id: I4a2a0ad8fe3927000b6826e0b1bcd214cf8c92b6 Signed-off-by: Tadao Tanikawa Signed-off-by: Jan-Simon Möller --- .../glibc/glibc/arm/local-arm-futex.diff | 23 ++++++++++++++++++++++ meta-agl/recipes-core/glibc/glibc_2.2%.bbappend | 3 +++ 2 files changed, 26 insertions(+) create mode 100644 meta-agl/recipes-core/glibc/glibc/arm/local-arm-futex.diff create mode 100644 meta-agl/recipes-core/glibc/glibc_2.2%.bbappend (limited to 'meta-agl') diff --git a/meta-agl/recipes-core/glibc/glibc/arm/local-arm-futex.diff b/meta-agl/recipes-core/glibc/glibc/arm/local-arm-futex.diff new file mode 100644 index 000000000..bcbdeda21 --- /dev/null +++ b/meta-agl/recipes-core/glibc/glibc/arm/local-arm-futex.diff @@ -0,0 +1,23 @@ +Description: Lie about futex_atomic_cmpxchg_inatomic kernel support. + In past versions of glibc, we incorrectly assumed all ARM kernels + in all configurations supported futex_atomic_cmpxchg_inatomic. This + was clearly a lie, however it was a lie that we relied on, because + the fallback implementation appears to not play nicely with certain + applications like pulseaudio. Restore the lie for kernels > 2.6.32 + and plug our ears and scream "LA LA LA" about how wrong this is. +Author: Adam Conrad +Bug-Ubuntu: https://launchpad.net/bugs/1436162 +Bug-Debian: https://bugs.debian.org/788799 +Last-Update: 2015-03-25 + +--- glibc-2.21.orig/sysdeps/unix/sysv/linux/arm/kernel-features.h ++++ glibc-2.21/sysdeps/unix/sysv/linux/arm/kernel-features.h +@@ -37,7 +37,7 @@ + /* The ARM kernel before 3.14.3 may or may not support + futex_atomic_cmpxchg_inatomic, depending on kernel + configuration. */ +-#if __LINUX_KERNEL_VERSION < 0x030E03 ++#if __LINUX_KERNEL_VERSION < 0x020620 + # undef __ASSUME_FUTEX_LOCK_PI + # undef __ASSUME_REQUEUE_PI + # undef __ASSUME_SET_ROBUST_LIST diff --git a/meta-agl/recipes-core/glibc/glibc_2.2%.bbappend b/meta-agl/recipes-core/glibc/glibc_2.2%.bbappend new file mode 100644 index 000000000..0868a2c7d --- /dev/null +++ b/meta-agl/recipes-core/glibc/glibc_2.2%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_arm = " file://arm/local-arm-futex.diff " -- cgit 1.2.3-korg