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: