diff --git a/pulseaudio-arm6.patch b/pulseaudio-arm6.patch new file mode 100644 index 0000000..2a798c2 --- /dev/null +++ b/pulseaudio-arm6.patch @@ -0,0 +1,102 @@ +From 12b900858ae82d435c100d6eb94cb7bb22fe5e29 Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +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 + diff --git a/pulseaudio.spec b/pulseaudio.spec index db41c6c..377e874 100644 --- a/pulseaudio.spec +++ b/pulseaudio.spec @@ -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 - 0.9.22-5 +- Add upstream patch to fix compilation on ARM + * Mon Mar 28 2011 Matthias Clasen - 0.9.22-4 - Activate pulseaudio earlier during login