Browse Source

gnu: libmad: Fix MIPS assembler code to work with new GCC.

* gnu/packages/patches/libmad-mips-newgcc.patch: New file.
* gnu/packages/mp3.scm (libmad): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
gn-latest-20200428
Mark H Weaver 7 years ago
parent
commit
dd863f1f39
3 changed files with 19 additions and 1 deletions
  1. +1
    -0
      gnu-system.am
  2. +2
    -1
      gnu/packages/mp3.scm
  3. +16
    -0
      gnu/packages/patches/libmad-mips-newgcc.patch

+ 1
- 0
gnu-system.am View File

@@ -240,6 +240,7 @@ dist_patch_DATA = \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libffi-mips-n32-fix.patch \
gnu/packages/patches/libmad-mips-newgcc.patch \
gnu/packages/patches/libtheora-config-guess.patch \
gnu/packages/patches/libtool-skip-tests.patch \
gnu/packages/patches/libtool-skip-tests-for-mips.patch \


+ 2
- 1
gnu/packages/mp3.scm View File

@@ -44,7 +44,8 @@
version ".tar.gz"))
(sha256
(base32
"14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))))
"14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
(patches (list (search-patch "libmad-mips-newgcc.patch")))))
(build-system gnu-build-system)
(arguments
`(#:phases


+ 16
- 0
gnu/packages/patches/libmad-mips-newgcc.patch View File

@@ -0,0 +1,16 @@
Fix MIPS assembly code to work with newer GCC, where the "=h"
constraint is no longer supported.

--- libmad/fixed.h.orig 2004-02-16 21:02:03.000000000 -0500
+++ libmad/fixed.h 2011-10-29 18:47:21.000000000 -0400
@@ -304,8 +304,8 @@
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
*/
# define MAD_F_MLX(hi, lo, x, y) \
- asm ("mult %2,%3" \
- : "=l" (lo), "=h" (hi) \
+ asm ("mult %2,%3\n\tmfhi %1" \
+ : "=l" (lo), "=r" (hi) \
: "%r" (x), "r" (y))
# if defined(HAVE_MADD_ASM)

Loading…
Cancel
Save