rpms/libmad/devel Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff, NONE, 1.1 libmad.thumb.diff, NONE, 1.1 libmad.spec, 1.8, 1.9

Nicolas Chauvet kwizart at rpmfusion.org
Mon Apr 30 20:27:50 CEST 2012


Author: kwizart

Update of /cvs/free/rpms/libmad/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv13925/devel

Modified Files:
	libmad.spec 
Added Files:
	Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff 
	libmad.thumb.diff 
Log Message:
Add support for ARM


Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff:
 fixed.h |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

--- NEW FILE Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff ---
diff --git a/fixed.h b/fixed.h
index 4b58abf..ba4bc26 100644
--- a/fixed.h
+++ b/fixed.h
@@ -275,12 +275,25 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
 	 : "+r" (lo), "+r" (hi)  \
 	 : "%r" (x), "r" (y))
 
+#ifdef __thumb__
+/* In Thumb-2, the RSB-immediate instruction is only allowed with a zero
+	operand.  If needed this code can also support Thumb-1 
+	(simply append "s" to the end of the second two instructions). */
+#  define MAD_F_MLN(hi, lo)  \
+    asm ("rsbs	%0, %2, #0\n\t"  \
+	 "sbc	%1, %1, %1\n\t"  \
+	 "sub	%1, %1, %3\n\t"  \
+	 : "=&r" (lo), "=&r" (hi)  \
+	 : "0" (lo), "1" (hi)  \
+	 : "cc")
+#else /* ! __thumb__ */
 #  define MAD_F_MLN(hi, lo)  \
     asm ("rsbs	%0, %2, #0\n\t"  \
 	 "rsc	%1, %3, #0"  \
-	 : "=r" (lo), "=r" (hi)  \
+	 : "=&r" (lo), "=r" (hi)  \
 	 : "0" (lo), "1" (hi)  \
 	 : "cc")
+#endif /* __thumb__ */
 
 #  define mad_f_scale64(hi, lo)  \
     ({ mad_fixed_t __result;  \

libmad.thumb.diff:
 imdct_l_arm.S |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE libmad.thumb.diff ---
--- ./imdct_l_arm.S.orig	2010-02-25 13:25:23.000000000 +0100
+++ ./imdct_l_arm.S	2010-02-25 13:27:26.000000000 +0100
@@ -468,7 +468,7 @@
 
     @----
 
-    add     r2, pc, #(imdct36_long_karray-.-8)  @ r2 = base address of Knn array (PIC safe ?)
+    adr     r2, imdct36_long_karray
 
 
 loop:



Index: libmad.spec
===================================================================
RCS file: /cvs/free/rpms/libmad/devel/libmad.spec,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- libmad.spec	25 Jan 2012 14:50:28 -0000	1.8
+++ libmad.spec	30 Apr 2012 18:27:50 -0000	1.9
@@ -1,6 +1,6 @@
 Name:		libmad
 Version:	0.15.1b
-Release:	14%{?dist}
+Release:	15%{?dist}
 Summary:	MPEG audio decoder library
 
 Group:		System Environment/Libraries
@@ -9,6 +9,10 @@
 Source0:	http://download.sourceforge.net/mad/%{name}-%{version}.tar.gz
 Patch0:		libmad-0.15.1b-multiarch.patch
 Patch1:		libmad-0.15.1b-ppc.patch
+#https://bugs.launchpad.net/ubuntu/+source/libmad/+bug/534287
+Patch2:         Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff
+#https://bugs.launchpad.net/ubuntu/+source/libmad/+bug/513734
+Patch3:         libmad.thumb.diff
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root
 
 BuildRequires:	automake
@@ -34,8 +38,12 @@
 
 %prep
 %setup -q
+%ifarch %{ix86} x86_64 ppc ppc64
 %patch0 -p1 -b .multiarch
+%endif
 %patch1 -p1 -b .ppc
+%patch2 -p1 -b .alt_t2
+%patch3 -p1 -b .thumb
 
 sed -i -e /-fforce-mem/d configure* # -fforce-mem gone in gcc 4.2, noop earlier
 touch -r aclocal.m4 configure.ac NEWS AUTHORS ChangeLog
@@ -60,9 +68,12 @@
 %build
 autoreconf -sfi
 %configure \
-%ifarch x86_64 ia64 ppc64
+%if %{__isa_bits} == 64
 	--enable-fpm=64bit \
 %endif
+%ifarch %{arm}
+        --enable-fpm=arm \
+%endif
 	--disable-dependency-tracking \
 	--enable-accuracy \
 	--disable-debugging \
@@ -99,6 +110,11 @@
 
 
 %changelog
+* Sat Apr 28 2012 Nicolas Chauvet <kwizart at gmail.com> - 0.15.1b-15
+- Don't use multiarch patch when the result is not hardcoded
+- Update FPM
+- Add patches from lp#534287 and lp#534287
+
 * Wed Jan 25 2012 Nicolas Chauvet <kwizart at gmail.com> - 0.15.1b-14
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the rpmfusion-commits mailing list