From a156d6d3c11c98fed86f4a38c3d25d028f7093c9 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 26 Jun 2012 14:49:44 +0000 Subject: Add fix from upstream tracker for building with gcc-4.7 #403197 by Kacper Kowalik. (Portage version: 2.2.0_alpha112/cvs/Linux x86_64) --- dev-libs/crypto++/ChangeLog | 8 +- dev-libs/crypto++/crypto++-5.6.1-r3.ebuild | 8 +- .../crypto++/files/crypto++-5.6.1-gcc-4.7.patch | 120 +++++++++++++++++++++ 3 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 dev-libs/crypto++/files/crypto++-5.6.1-gcc-4.7.patch (limited to 'dev-libs/crypto++') diff --git a/dev-libs/crypto++/ChangeLog b/dev-libs/crypto++/ChangeLog index da07578d548e..c9fd3c1e1035 100644 --- a/dev-libs/crypto++/ChangeLog +++ b/dev-libs/crypto++/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-libs/crypto++ # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/ChangeLog,v 1.74 2012/01/30 16:06:14 c1pher Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/ChangeLog,v 1.75 2012/06/26 14:49:44 vapier Exp $ + + 26 Jun 2012; Mike Frysinger + +files/crypto++-5.6.1-gcc-4.7.patch, crypto++-5.6.1-r3.ebuild: + Add fix from upstream tracker for building with gcc-4.7 #403197 by Kacper + Kowalik. *crypto++-5.6.1-r3 (30 Jan 2012) @@ -307,4 +312,3 @@ 24 Nov 2003; Ryan Phillips crypto++-5.1.ebuild: Initial Import. Thanks to Marc Bevand. Fixes #33685 - diff --git a/dev-libs/crypto++/crypto++-5.6.1-r3.ebuild b/dev-libs/crypto++/crypto++-5.6.1-r3.ebuild index 5583bfd88b3e..38f93ef571d6 100644 --- a/dev-libs/crypto++/crypto++-5.6.1-r3.ebuild +++ b/dev-libs/crypto++/crypto++-5.6.1-r3.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/dev-libs/crypto++/crypto++-5.6.1-r3.ebuild,v 1.1 2012/01/30 16:06:14 c1pher Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/crypto++-5.6.1-r3.ebuild,v 1.2 2012/06/26 14:49:44 vapier Exp $ EAPI="3" @@ -21,8 +21,10 @@ RDEPEND="" S="${WORKDIR}" src_prepare() { - epatch "${FILESDIR}/${PF}-fix_build_system.patch" \ - "${FILESDIR}/${P}-rijndael.patch" + epatch \ + "${FILESDIR}"/${PF}-fix_build_system.patch \ + "${FILESDIR}"/${P}-rijndael.patch \ + "${FILESDIR}"/${P}-gcc-4.7.patch } src_compile() { diff --git a/dev-libs/crypto++/files/crypto++-5.6.1-gcc-4.7.patch b/dev-libs/crypto++/files/crypto++-5.6.1-gcc-4.7.patch new file mode 100644 index 000000000000..cd6147aebf20 --- /dev/null +++ b/dev-libs/crypto++/files/crypto++-5.6.1-gcc-4.7.patch @@ -0,0 +1,120 @@ +https://bugs.gentoo.org/403197 +http://sourceforge.net/apps/trac/cryptopp/ticket/14 +http://sourceforge.net/apps/trac/cryptopp/attachment/ticket/14/gcc4.7.diff + +diff --git a/algebra.cpp b/algebra.cpp +index 78c3947..d4bfc57 100644 +--- a/algebra.cpp ++++ b/algebra.cpp +@@ -58,7 +58,7 @@ template const T& AbstractEuclideanDomain::Gcd(const Element &a, co + Element g[3]={b, a}; + unsigned int i0=0, i1=1, i2=2; + +- while (!Equal(g[i1], this->Identity())) ++ while (!this->Equal(g[i1], this->Identity())) + { + g[i2] = Mod(g[i0], g[i1]); + unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; +@@ -74,7 +74,7 @@ template const typename QuotientRing::Element& QuotientRing::Mul + Element y; + unsigned int i0=0, i1=1, i2=2; + +- while (!Equal(g[i1], Identity())) ++ while (!this->Equal(g[i1], Identity())) + { + // y = g[i0] / g[i1]; + // g[i2] = g[i0] % g[i1]; +diff --git a/eccrypto.cpp b/eccrypto.cpp +index fd8462f..922104c 100644 +--- a/eccrypto.cpp ++++ b/eccrypto.cpp +@@ -435,7 +435,7 @@ template void DL_GroupParameters_EC::Initialize(const OID &oid) + StringSource ssG(param.g, true, new HexDecoder); + Element G; + bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable()); +- SetSubgroupGenerator(G); ++ this->SetSubgroupGenerator(G); + assert(result); + + StringSource ssN(param.n, true, new HexDecoder); +@@ -591,7 +591,7 @@ bool DL_GroupParameters_EC::ValidateElement(unsigned int level, const Elemen + if (level >= 2 && pass) + { + const Integer &q = GetSubgroupOrder(); +- Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q); ++ Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q); + pass = pass && IsIdentity(gq); + } + return pass; +@@ -629,7 +629,7 @@ void DL_PublicKey_EC::BERDecodePublicKey(BufferedTransformation &bt, bool pa + typename EC::Point P; + if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size)) + BERDecodeError(); +- SetPublicElement(P); ++ this->SetPublicElement(P); + } + + template +diff --git a/eccrypto.h b/eccrypto.h +index b359e03..3530455 100644 +--- a/eccrypto.h ++++ b/eccrypto.h +@@ -43,7 +43,7 @@ public: + void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero()) + { + this->m_groupPrecomputation.SetCurve(ec); +- SetSubgroupGenerator(G); ++ this->SetSubgroupGenerator(G); + m_n = n; + m_k = k; + } +@@ -145,9 +145,9 @@ public: + typedef typename EC::Point Element; + + void Initialize(const DL_GroupParameters_EC ¶ms, const Element &Q) +- {this->AccessGroupParameters() = params; SetPublicElement(Q);} ++ {this->AccessGroupParameters() = params; this->SetPublicElement(Q);} + void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q) +- {this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);} ++ {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);} + + // X509PublicKey + void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size); +@@ -166,9 +166,9 @@ public: + void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x) + {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);} + void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC ¶ms) +- {GenerateRandom(rng, params);} ++ {this->GenerateRandom(rng, params);} + void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n) +- {GenerateRandom(rng, DL_GroupParameters_EC(ec, G, n));} ++ {this->GenerateRandom(rng, DL_GroupParameters_EC(ec, G, n));} + + // PKCS8PrivateKey + void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size); +diff --git a/panama.cpp b/panama.cpp +index 09b1708..a1a37d6 100644 +--- a/panama.cpp ++++ b/panama.cpp +@@ -422,7 +422,7 @@ void PanamaHash::TruncatedFinal(byte *hash, size_t size) + { + this->ThrowIfInvalidTruncatedSize(size); + +- PadLastBlock(this->BLOCKSIZE, 0x01); ++ this->PadLastBlock(this->BLOCKSIZE, 0x01); + + HashEndianCorrectedBlock(this->m_data); + +diff --git a/secblock.h b/secblock.h +index 24b9fc0..40cce33 100644 +--- a/secblock.h ++++ b/secblock.h +@@ -88,7 +88,7 @@ public: + + pointer allocate(size_type n, const void * = NULL) + { +- CheckSize(n); ++ this->CheckSize(n); + if (n == 0) + return NULL; + -- cgit v1.2.3-65-gdbad