Fix building with GCC 4.4 on MIPS wrt #317871 by Manuel Lauss.
authorSamuli Suominen <ssuominen@gentoo.org>
Fri, 30 Apr 2010 08:21:51 +0000 (08:21 +0000)
committerSamuli Suominen <ssuominen@gentoo.org>
Fri, 30 Apr 2010 08:21:51 +0000 (08:21 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

media-libs/libmad/ChangeLog
media-libs/libmad/Manifest
media-libs/libmad/files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch [new file with mode: 0644]
media-libs/libmad/libmad-0.15.1b-r6.ebuild [new file with mode: 0644]

index 99be863263f7e95007d9a46649f4c745d6299aa9..bb959be40832cf4bf9e38f64aaa269894a6c5a81 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for media-libs/libmad
-# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/libmad/ChangeLog,v 1.54 2008/04/18 21:14:50 flameeyes Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/libmad/ChangeLog,v 1.55 2010/04/30 08:21:51 ssuominen Exp $
+
+*libmad-0.15.1b-r6 (30 Apr 2010)
+
+  30 Apr 2010; Samuli Suominen <ssuominen@gentoo.org>
+  +libmad-0.15.1b-r6.ebuild,
+  +files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch:
+  Fix building with GCC 4.4 on MIPS wrt #317871 by Manuel Lauss.
 
 *libmad-0.15.1b-r5 (18 Apr 2008)
 
index 02b5ee3d918fdb821cf66d088b28f008bbfd887e..1481e8e750da15e580456d80f56a6138403b74dc 100644 (file)
@@ -1,21 +1,13 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
 AUX libmad-0.15.1b-cflags-O2.patch 347 RMD160 a2a0059dc8fb2c8f526a09fc250b5c16907e687a SHA1 334c2e88e180d8d4757934973f32f3ac270744bf SHA256 197bd69c064ba2957b23d83509c9fdc63c5315076fdf8c98dbc9eccd3ff236ca
 AUX libmad-0.15.1b-cflags.patch 4867 RMD160 9103cec98f6dc746fd05e385159484098c6347b3 SHA1 e6e8c0de26ed6ef6ccfb6d1ea6e8b682695e1144 SHA256 0d92977b30b599be8d423e9bec39c0f76b9dbc0f38dbc98a397394c30e28243e
+AUX libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch 2377 RMD160 602120e21d3010ba9c9f0bbbcb507920cf676ecf SHA1 2dde95528ef0d66166001f25e9896777e488c032 SHA256 328e42102e637273502831d5c45b29e765073d08328de1e8ed6280958877eae5
 AUX mad.pc 211 RMD160 fd821f10ff5e1f43a4f166229bebebd9f78a2a4c SHA1 c119a0ac710c4a3255fc643ca60c9107a31e3e7c SHA256 821918a6be761d7b8a697af951e4a9a5d2e48920cd80c9b6b9fa19d78afcf3b3
 DIST libmad-0.15.1b.tar.gz 502379 RMD160 0f3415ee10b188681e282ca69dec74c46ca73b0f SHA1 cac19cd00e1a907f3150cc040ccc077783496d76 SHA256 bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690
 EBUILD libmad-0.15.1b-r2.ebuild 1840 RMD160 c3038b885ad3aa7312c09f5a54fc1ef93bcceee6 SHA1 431d36a651a54e517564f6c31bebe9975056e06d SHA256 4ccecf883c860e1c3e152c14287980fe38d17085004d5d823465284e5e5c6a5e
 EBUILD libmad-0.15.1b-r3.ebuild 1897 RMD160 72fae917a838706796340c899443a373d4c98d9e SHA1 cc92ca73768b9740a467454a4bce414c85ed08f2 SHA256 57e2be41f5a63af4530b86a4a75601e18b08ded1930cd4bc1733504dd874d03a
 EBUILD libmad-0.15.1b-r4.ebuild 1927 RMD160 93def51ba2f09847752fe8913a94bb5872b8d750 SHA1 f4b3cb71dae276c024eb138e169ca8a155e580cb SHA256 8cc7631580d0ed32d2e6e79e04eb64c3b696ce005d69e8fb10db155e17663ff1
 EBUILD libmad-0.15.1b-r5.ebuild 1962 RMD160 bbbd06f2cfee7745eb4ec98ff355fb73633fbd7c SHA1 4ccb20e8177eb48291a88ad559a22fd10b8e12c1 SHA256 c68ce33ee4b2c8388a1b5851a02c10bdd119d6b9206c109c560feecdde58947c
+EBUILD libmad-0.15.1b-r6.ebuild 2037 RMD160 603049b090a08166c876ded527d7ef5785fdf2c3 SHA1 c87b4864d454b0c0cdb9a45cb541bbe15eae7ce1 SHA256 bcd10e9dea404270d9d403c1f40e1df4c8f7dfedbb8016ce0de0a8efe4407d59
 EBUILD libmad-0.15.1b.ebuild 1525 RMD160 91cc057032f76dc8d3f9e2461d6b4cd1ae2bc8b6 SHA1 4414a6c6006e2f32c022c7406764d4a8cbe03209 SHA256 81b82fdf8dd7cd4aaf9cfebc6e6b468a2b0ba290e38ea162ae061ddd1d0d680d
-MISC ChangeLog 7208 RMD160 70bd57537fbcf6df4681251d451a7caf8d9422d7 SHA1 6b28d1faf786be4b8eb7ac2d0e235126d10117c7 SHA256 cb2d44c49fb2b640f3195a7e4e5d986c40ab8856b2508030d5f2fdf807ad8d55
+MISC ChangeLog 7454 RMD160 1f1b5946ad9348dcf6dad650891ae405f5b0f853 SHA1 31d4ea3b5d7ba98e7046d1d2d2c14516f5be1ee1 SHA256 1b2cd27e3d9fd9bc827c1dbf7cefb083616a33b7a4d12d41ed102585261d2a74
 MISC metadata.xml 252 RMD160 68406e733c1a9f26b7ab37e79ab53b3f59305b3a SHA1 6e5cc1551616801a2f257d688e6fc286044c3499 SHA256 5ab00710d822d203a1a38e1b6a9754137de4fe2cf5c4e79470419ed3f3927450
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.9 (GNU/Linux)
-
-iEYEARECAAYFAkgJD1AACgkQAiZjviIA2XiZIQCg2B4DK7rB/rOjt7n3AkY88Uc2
-9iwAoKW1GsmtB+Y3rVYGRkvJVhoon8tY
-=VHTc
------END PGP SIGNATURE-----
diff --git a/media-libs/libmad/files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch b/media-libs/libmad/files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch
new file mode 100644 (file)
index 0000000..bff7afe
--- /dev/null
@@ -0,0 +1,77 @@
+libmad: MIPS GCC-4.4 build fixes
+
+GCC-4.4 on MIPS removed the "h" asm constraint, fix this up.
+Taken from OE.
+
+http://patchwork.openembedded.org/patch/921/
+
+diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h
+--- libmad-0.15.1b-orig/fixed.h        2004-02-17 12:32:03.000000000 +1030
++++ libmad-0.15.1b/fixed.h     2009-08-05 10:46:30.000000000 +0930
+@@ -299,6 +299,23 @@
+ 
+ # elif defined(FPM_MIPS)
+ 
++/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
++#if defined (__GNUC__) && defined (__GNUC_MINOR__)
++#define __GNUC_PREREQ(maj, min) \
++      ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++#else
++#define __GNUC_PREREQ(maj, min)  0
++#endif
++
++#if __GNUC_PREREQ(4,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) 
++#else
+ /*
+  * This MIPS version is fast and accurate; the disposition of the least
+  * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+@@ -328,6 +345,7 @@
+        : "%r" ((x) >> 12), "r" ((y) >> 16))
+ #  define MAD_F_MLZ(hi, lo)  ((mad_fixed_t) (lo))
+ # endif
++#endif /* __GNU_PREREQ(4,4) */
+ 
+ # if defined(OPT_SPEED)
+ #  define mad_f_scale64(hi, lo)  \
+diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h
+--- libmad-0.15.1b-orig/mad.h  2004-02-17 13:25:44.000000000 +1030
++++ libmad-0.15.1b/mad.h       2009-08-05 10:42:40.000000000 +0930
+@@ -344,6 +344,23 @@
+ 
+ # elif defined(FPM_MIPS)
+ 
++/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
++#if defined (__GNUC__) && defined (__GNUC_MINOR__)
++#define __GNUC_PREREQ(maj, min) \
++      ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++#else
++#define __GNUC_PREREQ(maj, min)  0
++#endif
++
++#if __GNUC_PREREQ(4,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) 
++#else
+ /*
+  * This MIPS version is fast and accurate; the disposition of the least
+  * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+@@ -373,6 +390,7 @@
+        : "%r" ((x) >> 12), "r" ((y) >> 16))
+ #  define MAD_F_MLZ(hi, lo)  ((mad_fixed_t) (lo))
+ # endif
++#endif /* __GNU_PREREQ(4,4) */
+ 
+ # if defined(OPT_SPEED)
+ #  define mad_f_scale64(hi, lo)  \
diff --git a/media-libs/libmad/libmad-0.15.1b-r6.ebuild b/media-libs/libmad/libmad-0.15.1b-r6.ebuild
new file mode 100644 (file)
index 0000000..5ed5e67
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/libmad/libmad-0.15.1b-r6.ebuild,v 1.1 2010/04/30 08:21:51 ssuominen Exp $
+
+inherit eutils autotools libtool flag-o-matic
+
+DESCRIPTION="\"M\"peg \"A\"udio \"D\"ecoder library"
+HOMEPAGE="http://mad.sourceforge.net"
+SRC_URI="mirror://sourceforge/mad/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="debug"
+
+DEPEND=""
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+
+       epatch "${FILESDIR}"/libmad-0.15.1b-cflags.patch
+       epatch "${FILESDIR}"/libmad-0.15.1b-cflags-O2.patch
+       epatch "${FILESDIR}"/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch
+
+       eautoreconf
+
+       elibtoolize
+       epunt_cxx #74490
+}
+
+src_compile() {
+       local myconf="--enable-accuracy"
+       # --enable-speed                 optimize for speed over accuracy
+       # --enable-accuracy              optimize for accuracy over speed
+       # --enable-experimental  enable code using the EXPERIMENTAL
+       #                                                preprocessor define
+
+       # Fix for b0rked sound on sparc64 (maybe also sparc32?)
+       # default/approx is also possible, uses less cpu but sounds worse
+       use sparc && myconf="${myconf} --enable-fpm=64bit"
+
+       [[ $(tc-arch) == "amd64" ]] && myconf="${myconf} --enable-fpm=64bit"
+       [[ $(tc-arch) == "x86" ]] && myconf="${myconf} --enable-fpm=intel"
+       [[ $(tc-arch) == "ppc" ]] && myconf="${myconf} --enable-fpm=ppc"
+       [[ $(tc-arch) == "ppc64" ]] && myconf="${myconf} --enable-fpm=64bit"
+
+       econf \
+               $(use_enable debug debugging) \
+               ${myconf} || die "configure failed"
+       emake || die "make failed"
+}
+
+src_install() {
+       emake install DESTDIR="${D}" || die "make install failed"
+
+       dodoc CHANGES CREDITS README TODO VERSION
+
+       # This file must be updated with each version update
+       insinto /usr/$(get_libdir)/pkgconfig
+       doins "${FILESDIR}"/mad.pc
+
+       # Use correct libdir in pkgconfig file
+       dosed "s:^libdir.*:libdir=/usr/$(get_libdir):" \
+               /usr/$(get_libdir)/pkgconfig/mad.pc
+
+       find "${D}" -name '*.la' -delete
+}