summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc8
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch48
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb1
3 files changed, 49 insertions, 8 deletions
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index c7f3e67022..4e32b27087 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -63,14 +63,6 @@ DEPENDS += "speexdsp libxml-parser-perl-native libcap"
63 63
64inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings 64inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings
65 65
66# When compiling for Thumb or Thumb2, frame pointers _must_ be disabled since the
67# Thumb frame pointer in r7 clashes with pulseaudio's use of inline asm to make syscalls
68# (where r7 is used for the syscall NR). In most cases, frame pointers will be
69# disabled automatically due to the optimisation level, but append an explicit
70# -fomit-frame-pointer to handle cases where optimisation is set to -O0 or frame
71# pointers have been enabled by -fno-omit-frame-pointer earlier in CFLAGS, etc.
72CFLAGS_append_arm = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
73
74# *.desktop rules wont be generated during configure and build will fail 66# *.desktop rules wont be generated during configure and build will fail
75# if using --disable-nls 67# if using --disable-nls
76USE_NLS = "yes" 68USE_NLS = "yes"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
new file mode 100644
index 0000000000..aaa162f9b0
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
@@ -0,0 +1,48 @@
1From 4a1668f341f0228904105f77fe5871b9d59b2663 Mon Sep 17 00:00:00 2001
2From: Tanu Kaskinen <tanuk@iki.fi>
3Date: Mon, 13 Jul 2020 12:42:14 +0300
4Subject: [PATCH] remap_neon: use register r12 instead of r7
5
6When the Thumb instructions set is used and frame pointers are enabled
7(-fno-omit-frame-pointer), r7 can't be used, because it's used for the
8frame pointer. Trying to use r7 caused the compilation to fail.
9
10Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to
11test that it works. The code builds now, and cpu-remap-test also
12succeeds.
13
14[1] https://lists.openembedded.org/g/openembedded-core/message/136786
15
16Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/324]
17
18Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
19---
20 src/pulsecore/remap_neon.c | 10 +++++++---
21 1 file changed, 7 insertions(+), 3 deletions(-)
22
23diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
24index ca3b95b48..6f71345f8 100644
25--- a/src/pulsecore/remap_neon.c
26+++ b/src/pulsecore/remap_neon.c
27@@ -52,11 +52,15 @@ static void remap_mono_to_stereo_float32ne_generic_arm(pa_remap_t *m, float *dst
28 __asm__ __volatile__ (
29 "ldm %[src]!, {r4,r6} \n\t"
30 "mov r5, r4 \n\t"
31- "mov r7, r6 \n\t"
32- "stm %[dst]!, {r4-r7} \n\t"
33+
34+ /* We use r12 instead of r7 here, because r7 is reserved for the
35+ * frame pointer when using Thumb. */
36+ "mov r12, r6 \n\t"
37+
38+ "stm %[dst]!, {r4-r6,r12} \n\t"
39 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
40 : /* input operands */
41- : "memory", "r4", "r5", "r6", "r7" /* clobber list */
42+ : "memory", "r4", "r5", "r6", "r12" /* clobber list */
43 );
44 }
45
46--
472.20.1
48
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
index d2f201d06e..53e9a2357d 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
@@ -4,6 +4,7 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \ 4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \
5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ 5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
6 file://0001-remap-arm-Adjust-inline-asm-constraints.patch \ 6 file://0001-remap-arm-Adjust-inline-asm-constraints.patch \
7 file://0001-remap_neon-use-register-r12-instead-of-r7.patch \
7 file://volatiles.04_pulse \ 8 file://volatiles.04_pulse \
8 " 9 "
9SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c" 10SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c"