summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2010-04-30 08:21:51 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2010-04-30 08:21:51 +0000
commit2a432ab3517c530b2a5df7cbfeaf9c307d04ddbd (patch)
treec6f7f37330bcf52b33095dd7721722e459542d5e /media-libs/libmad
parentVersion bump. (diff)
downloadhistorical-2a432ab3517c530b2a5df7cbfeaf9c307d04ddbd.tar.gz
historical-2a432ab3517c530b2a5df7cbfeaf9c307d04ddbd.tar.bz2
historical-2a432ab3517c530b2a5df7cbfeaf9c307d04ddbd.zip
Fix building with GCC 4.4 on MIPS wrt #317871 by Manuel Lauss.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'media-libs/libmad')
-rw-r--r--media-libs/libmad/ChangeLog11
-rw-r--r--media-libs/libmad/Manifest14
-rw-r--r--media-libs/libmad/files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch77
-rw-r--r--media-libs/libmad/libmad-0.15.1b-r6.ebuild68
4 files changed, 157 insertions, 13 deletions
diff --git a/media-libs/libmad/ChangeLog b/media-libs/libmad/ChangeLog
index 99be863263f7..bb959be40832 100644
--- a/media-libs/libmad/ChangeLog
+++ b/media-libs/libmad/ChangeLog
@@ -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)
diff --git a/media-libs/libmad/Manifest b/media-libs/libmad/Manifest
index 02b5ee3d918f..1481e8e750da 100644
--- a/media-libs/libmad/Manifest
+++ b/media-libs/libmad/Manifest
@@ -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
index 000000000000..bff7afe6b6bc
--- /dev/null
+++ b/media-libs/libmad/files/libmad-0.15.1b-gcc44-mips-h-constraint-removal.patch
@@ -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
index 000000000000..5ed5e6710f5b
--- /dev/null
+++ b/media-libs/libmad/libmad-0.15.1b-r6.ebuild
@@ -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
+}