Add upstream patch to fix compilation on ARM
This commit is contained in:
parent
feaa80fb01
commit
8ffd569510
102
pulseaudio-arm6.patch
Normal file
102
pulseaudio-arm6.patch
Normal file
@ -0,0 +1,102 @@
|
||||
From 12b900858ae82d435c100d6eb94cb7bb22fe5e29 Mon Sep 17 00:00:00 2001
|
||||
From: Arun Raghavan <arun.raghavan@collabora.co.uk>
|
||||
Date: Fri, 26 Nov 2010 11:55:57 +0530
|
||||
Subject: [PATCH] volume: Add explicit checks for ARMv6 instructions
|
||||
|
||||
This ensures that the build does not fail if the ssat and pkhbt
|
||||
instructions are not available (armv5te and below).
|
||||
|
||||
Fixes: http://www.pulseaudio.org/ticket/790
|
||||
---
|
||||
configure.ac | 33 ++++++++++++++++++++++++++++++++-
|
||||
src/pulsecore/svolume_arm.c | 8 ++++----
|
||||
2 files changed, 36 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f93d461..0f6ff81 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -227,7 +227,7 @@ else
|
||||
[pulseaudio_cv_support_arm_atomic_ops=no])
|
||||
])
|
||||
AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
|
||||
- AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
|
||||
+ AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
|
||||
need_libatomic_ops=no
|
||||
])
|
||||
fi
|
||||
@@ -246,6 +246,37 @@ else
|
||||
esac
|
||||
fi
|
||||
|
||||
+# If we're on ARM, check for the ARMV6 instructions we need */
|
||||
+case $host in
|
||||
+ arm*)
|
||||
+ AC_CACHE_CHECK([support for required armv6 instructions],
|
||||
+ pulseaudio_cv_support_armv6,
|
||||
+ [AC_COMPILE_IFELSE(
|
||||
+ AC_LANG_PROGRAM([],
|
||||
+ [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
|
||||
+ asm volatile ("ldr r0, %2 \n"
|
||||
+ "ldr r2, %3 \n"
|
||||
+ "ldr r3, %4 \n"
|
||||
+ "ssat r1, #8, r0 \n"
|
||||
+ "str r1, %0 \n"
|
||||
+ "pkhbt r1, r3, r2, LSL #8 \n"
|
||||
+ "str r1, %1 \n"
|
||||
+ : "=m" (a), "=m" (b)
|
||||
+ : "m" (a), "m" (b), "m" (c)
|
||||
+ : "r0", "r1", "r2", "r3", "cc");
|
||||
+ return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
|
||||
+ ]]),
|
||||
+ [pulseaudio_cv_support_armv6=yes],
|
||||
+ [pulseaudio_cv_support_armv6=no])
|
||||
+ ])
|
||||
+ AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
|
||||
+ AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
|
||||
+ ])
|
||||
+ ;;
|
||||
+ *)
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
CC_CHECK_TLS
|
||||
|
||||
AC_CACHE_CHECK([whether $CC knows _Bool],
|
||||
diff --git a/src/pulsecore/svolume_arm.c b/src/pulsecore/svolume_arm.c
|
||||
index fdd8f09..3973e51 100644
|
||||
--- a/src/pulsecore/svolume_arm.c
|
||||
+++ b/src/pulsecore/svolume_arm.c
|
||||
@@ -35,7 +35,7 @@
|
||||
#include "sample-util.h"
|
||||
#include "endianmacros.h"
|
||||
|
||||
-#if defined (__arm__)
|
||||
+#if defined (__arm__) && defined (HAVE_ARMV6)
|
||||
|
||||
#define MOD_INC() \
|
||||
" subs r0, r6, %2 \n\t" \
|
||||
@@ -182,11 +182,11 @@ static void run_test (void) {
|
||||
}
|
||||
#endif
|
||||
|
||||
-#endif /* defined (__arm__) */
|
||||
+#endif /* defined (__arm__) && defined (HAVE_ARMV6) */
|
||||
|
||||
|
||||
void pa_volume_func_init_arm (pa_cpu_arm_flag_t flags) {
|
||||
-#if defined (__arm__)
|
||||
+#if defined (__arm__) && defined (HAVE_ARMV6)
|
||||
pa_log_info("Initialising ARM optimized functions.");
|
||||
|
||||
#ifdef RUN_TEST
|
||||
@@ -194,5 +194,5 @@ void pa_volume_func_init_arm (pa_cpu_arm_flag_t flags) {
|
||||
#endif
|
||||
|
||||
pa_set_volume_func (PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_arm);
|
||||
-#endif /* defined (__arm__) */
|
||||
+#endif /* defined (__arm__) && defined (HAVE_ARMV6) */
|
||||
}
|
||||
--
|
||||
1.6.3.3
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Name: pulseaudio
|
||||
Summary: Improved Linux Sound Server
|
||||
Version: 0.9.22
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
License: LGPLv2+
|
||||
Group: System Environment/Daemons
|
||||
Source0: http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-%{version}.tar.gz
|
||||
@ -9,6 +9,8 @@ Source1: default.pa-for-gdm
|
||||
|
||||
# activate pulseaudio early at login
|
||||
Patch0: pulseaudio-activation.patch
|
||||
# upstream patch to fix compilation of ARM platforms
|
||||
Patch1: pulseaudio-arm6.patch
|
||||
URL: http://pulseaudio.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: m4
|
||||
@ -221,6 +223,7 @@ This package contains GDM integration hooks for the PulseAudio sound server.
|
||||
%prep
|
||||
%setup -q -T -b0
|
||||
%patch0 -p1 -b .activation
|
||||
%patch1 -p1 -b .arm
|
||||
|
||||
%build
|
||||
autoreconf
|
||||
@ -469,6 +472,9 @@ exit 0
|
||||
%attr(0600, gdm, gdm) %{_localstatedir}/lib/gdm/.pulse/default.pa
|
||||
|
||||
%changelog
|
||||
* Thu Apr 7 2011 Peter Robinson <pbrobinson@gmail.com> - 0.9.22-5
|
||||
- Add upstream patch to fix compilation on ARM
|
||||
|
||||
* Mon Mar 28 2011 Matthias Clasen <mclasen@redhat.com> - 0.9.22-4
|
||||
- Activate pulseaudio earlier during login
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user