summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2012-06-08 13:25:19 +0000
committerLars Wendler <polynomial-c@gentoo.org>2012-06-08 13:25:19 +0000
commit9ad4c3d4f59f10313452ee59424eaaf2438a862e (patch)
tree21135ea1c4dde0073987a7f4cdc7cb7720d70e4a /media-sound/rezound
parentCleanup metadata. (diff)
downloadgentoo-2-9ad4c3d4f59f10313452ee59424eaaf2438a862e.tar.gz
gentoo-2-9ad4c3d4f59f10313452ee59424eaaf2438a862e.tar.bz2
gentoo-2-9ad4c3d4f59f10313452ee59424eaaf2438a862e.zip
Fixed long standing -O2 optimization bug (#334797).
(Portage version: 2.2.0_alpha110/cvs/Linux x86_64)
Diffstat (limited to 'media-sound/rezound')
-rw-r--r--media-sound/rezound/ChangeLog9
-rw-r--r--media-sound/rezound/files/rezound-0.12.3_beta-gentoo_bug_334797.patch63
-rw-r--r--media-sound/rezound/rezound-0.12.3_beta-r2.ebuild5
3 files changed, 74 insertions, 3 deletions
diff --git a/media-sound/rezound/ChangeLog b/media-sound/rezound/ChangeLog
index eea7d1d2b26f..be88c5c57f6f 100644
--- a/media-sound/rezound/ChangeLog
+++ b/media-sound/rezound/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-sound/rezound
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rezound/ChangeLog,v 1.61 2012/05/17 12:02:13 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rezound/ChangeLog,v 1.62 2012/06/08 13:25:19 polynomial-c Exp $
+
+ 21 May 2012; Lars Wendler <polynomial-c@gentoo.org>
+ rezound-0.12.3_beta-r2.ebuild,
+ +files/rezound-0.12.3_beta-gentoo_bug_334797.patch:
+ non-maintainer commit: Fixed long standing -O2 optimization bug. Thanks to
+ Petr Novak for reporting this in bug #334797 and to Martin von Gagern for
+ providing a working patch.
17 May 2012; Samuli Suominen <ssuominen@gentoo.org>
rezound-0.12.3_beta-r2.ebuild:
diff --git a/media-sound/rezound/files/rezound-0.12.3_beta-gentoo_bug_334797.patch b/media-sound/rezound/files/rezound-0.12.3_beta-gentoo_bug_334797.patch
new file mode 100644
index 000000000000..e986bb8fc864
--- /dev/null
+++ b/media-sound/rezound/files/rezound-0.12.3_beta-gentoo_bug_334797.patch
@@ -0,0 +1,63 @@
+Let gcc handle template instantiation of TPoolFile.
+
+http://bugs.gentoo.org/334797
+
+2012-05-22 Martin von Gagern <Martin.vGagern@gmx.net>
+
+Index: rezound-0.12.3beta/src/PoolFile/TPoolFile.h
+===================================================================
+--- rezound-0.12.3beta.orig/src/PoolFile/TPoolFile.h
++++ rezound-0.12.3beta/src/PoolFile/TPoolFile.h
+@@ -403,10 +403,8 @@ private:
+
+ };
+
+-/* this would be needed if I were utilizing gcc's implicit instantiation for TPoolFile
+ #define __TPoolFile_H__CPP
+ #include "TPoolFile.cpp"
+ #undef __TPoolFile_H__CPP
+-*/
+
+ #endif
+Index: rezound-0.12.3beta/src/PoolFile/TPoolFile.cpp
+===================================================================
+--- rezound-0.12.3beta.orig/src/PoolFile/TPoolFile.cpp
++++ rezound-0.12.3beta/src/PoolFile/TPoolFile.cpp
+@@ -20,11 +20,9 @@
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+-/* this would be needed if I were utilizing gcc's implicit instantiation for TPoolFile
+ #ifndef __TPoolFile_H__CPP
+ #error this file must be included through TPoolFile.h NOT compiled on its own
+ #endif
+-*/
+
+ /* ???
+ * There are places that I have to do: container.erase(container.begin+index);
+Index: rezound-0.12.3beta/src/backend/CSound.cpp
+===================================================================
+--- rezound-0.12.3beta.orig/src/backend/CSound.cpp
++++ rezound-0.12.3beta/src/backend/CSound.cpp
+@@ -2286,7 +2286,7 @@ void CSound::setUserNotes(const string &
+
+
+ // this is the explicit instantiation of the TPoolFile for CSound's purposes
+-#include <TPoolFile.cpp>
++// #include <TPoolFile.cpp>
+ template class TPoolFile<sample_pos_t,uint64_t>;
+
+ // Some explicit template method instantiations (not sure why some are necessary and some aren't)
+Index: rezound-0.12.3beta/src/backend/CrezSoundTranslator.cpp
+===================================================================
+--- rezound-0.12.3beta.orig/src/backend/CrezSoundTranslator.cpp
++++ rezound-0.12.3beta/src/backend/CrezSoundTranslator.cpp
+@@ -43,7 +43,7 @@ CrezSoundTranslator::~CrezSoundTranslato
+
+ // need to include this I use some of the template *methods* for types that are no where else
+ // so the explicit instantation at the bottom of CSound.cpp doesn't instantiate everything
+-#include <TPoolFile.cpp>
++// #include <TPoolFile.cpp>
+
+ struct RFormatInfo1
+ {
diff --git a/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild b/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild
index b650ff605ffc..ce1c553862b3 100644
--- a/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild
+++ b/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild,v 1.6 2012/05/17 12:02:13 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rezound/rezound-0.12.3_beta-r2.ebuild,v 1.7 2012/06/08 13:25:19 polynomial-c Exp $
EAPI=4
MY_P=${P/_/}
@@ -40,7 +40,8 @@ S=${WORKDIR}/${MY_P}
src_prepare() {
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
epatch "${FILESDIR}"/${P}-gcc44.patch \
- "${FILESDIR}"/${P}-m4.patch
+ "${FILESDIR}"/${P}-m4.patch \
+ "${FILESDIR}"/${P}-gentoo_bug_334797.patch
AT_M4DIR="config/m4" eautoreconf
}