[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [pkg-mad-maintainers] Bug#568418: Bug#568418: libmad0-dev: mpg321 compilation errors in mips and mipsel architectures.



tag 568418 + patch
thanks

On Sat, Feb 13, 2010 at 08:06:50PM +0100, Kurt Roeckx wrote:
> On Wed, Feb 10, 2010 at 02:48:20PM +0100, Aurelien Jarno wrote:
> > Kurt Roeckx a écrit :
> > > 
> > > Can someone please take a look at this? I have no clue about
> > > mips assembler.
> > > 
> > 
> > This asm constraints has been removed from gcc 4.4, that why it was not
> > failing before. See http://gcc.gnu.org/gcc-4.4/changes.html for more
> > details, including a description of the new way to do it.
> > 
> > I don't have time to provide a patch right now, but I can have a look
> > later this week if you want.
> 
> I knew about that, but but would prefer that someone else writes
> the patch.  It would also be nice if you could compare the output
> before and after this change (write it to a file with madplay
> or something), and check to see if there is a performance
> difference.
> 

Please find a patch below. I have tested it by converting an mp3 file
into a wave file and verifying it is the same with and without the
patch.

--- libmad-0.15.1b.orig/fixed.h
+++ libmad-0.15.1b/fixed.h
@@ -297,6 +297,14 @@
 
 /* --- MIPS ---------------------------------------------------------------- */
 
+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+   typedef unsigned int u64_di_t __attribute__ ((mode (DI))); 
+#  define MAD_F_MLX(hi, lo, x, y) \
+   do { \
+      u64_di_t __ll = (u64_di_t) (x) * (y); \
+      hi = __ll >> 32; \
+      lo = __ll; \
+   } while (0)
 # elif defined(FPM_MIPS)
 
 /*

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net


Reply to: