From 2758c07f1ee596cdbb56c856588ed5820d6e9663 Mon Sep 17 00:00:00 2001 From: LluĂ­s Batlle i Rossell Date: Thu, 21 Jul 2011 18:34:41 +0000 Subject: Updating mldonkey. I remove the patch needed for mips, as they put it upstream already. svn path=/nixpkgs/trunk/; revision=27885 --- .../networking/p2p/mldonkey/default.nix | 6 +- .../networking/p2p/mldonkey/gcc44mips64.patch | 103 --------------------- 2 files changed, 2 insertions(+), 107 deletions(-) delete mode 100644 pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch (limited to 'pkgs/applications') diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix index ecc2e5f77941..244858757d10 100644 --- a/pkgs/applications/networking/p2p/mldonkey/default.nix +++ b/pkgs/applications/networking/p2p/mldonkey/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }: stdenv.mkDerivation (rec { - name = "mldonkey-3.0.4"; + name = "mldonkey-3.0.7"; src = fetchurl { url = "mirror://sourceforge/mldonkey/${name}.tar.bz2"; - sha256 = "0wnyi2m7126dq6r5zbqplgknnypzcx0p3q2mxcdfhp94ln7vn3f6"; + sha256 = "1m5cfx79jiym93bx789lqc1bmwrkz1b1jilhga7d994jsjcw6c2n"; }; meta = { @@ -13,8 +13,6 @@ stdenv.mkDerivation (rec { homepage = http://mldonkey.sourceforge.net/; }; - patches = [ ./gcc44mips64.patch ]; - buildInputs = [ ocaml zlib ncurses bzip2 file gd libpng ]; configureFlags = [ "--disable-gui" ]; } // (if (stdenv.system != "i686-linux" && stdenv.system != "x86_64-linux") then diff --git a/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch b/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch deleted file mode 100644 index 41449dcdd05c..000000000000 --- a/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch +++ /dev/null @@ -1,103 +0,0 @@ -Patch fixing CryptoPP so: -- it builds properly in mips64 with gcc 4.4 (gcc 4.4 does not have the 'h' asm constraint) -- it runs properly in mips64 (where lack of templated *Precision functions gave wrong numbers). - An assertion check failed without this. - -diff --git a/src/utils/lib/CryptoPP.cc b/src/utils/lib/CryptoPP.cc -index 9208e1c..6b12b0a 100644 ---- a/src/utils/lib/CryptoPP.cc -+++ b/src/utils/lib/CryptoPP.cc -@@ -890,35 +890,6 @@ unsigned int Parity(unsigned long value) - return (unsigned int)value&1; - } - --unsigned int BytePrecision(unsigned long value) --{ -- unsigned int i; -- for (i=sizeof(value); i; --i) -- if (value >> (i-1)*8) -- break; -- -- return i; --} -- --unsigned int BitPrecision(unsigned long value) --{ -- if (!value) -- return 0; -- -- unsigned int l=0, h=8*sizeof(value); -- -- while (h-l > 1) -- { -- unsigned int t = (l+h)/2; -- if (value >> t) -- l = t; -- else -- h = t; -- } -- -- return h; --} -- - unsigned long Crop(unsigned long value, unsigned int size) - { - if (size < 8*sizeof(value)) -@@ -1880,7 +1851,10 @@ public: - #elif defined(__x86_64__) - __asm__("mulq %3" : "=d" (r.m_halfs.high), "=a" (r.m_halfs.low) : "a" (a), "rm" (b) : "cc"); - #elif defined(__mips64) -- __asm__("dmultu %2,%3" : "=h" (r.m_halfs.high), "=l" (r.m_halfs.low) : "r" (a), "r" (b)); -+ //typedef unsigned int uint128_t __attribute__((mode(TI))); -+ __uint128_t tmp = (__uint128_t) a * b; -+ r.m_halfs.high = tmp >> 64; -+ r.m_halfs.low = tmp; - #elif defined(_M_IX86) - // for testing - word64 t = (word64)a * b; -diff --git a/src/utils/lib/CryptoPP.h b/src/utils/lib/CryptoPP.h -index d2ec1b2..775a898 100644 ---- a/src/utils/lib/CryptoPP.h -+++ b/src/utils/lib/CryptoPP.h -@@ -1869,10 +1869,39 @@ template inline const T& STDMAX(const T& a, const T& b) - // #define GETBYTE(x, y) (((byte *)&(x))[y]) - - CRYPTOPP_DLL unsigned int Parity(unsigned long); --CRYPTOPP_DLL unsigned int BytePrecision(unsigned long); --CRYPTOPP_DLL unsigned int BitPrecision(unsigned long); - CRYPTOPP_DLL unsigned long Crop(unsigned long, unsigned int size); - -+template -+unsigned int BitPrecision(const T &value) -+{ -+ if (!value) -+ return 0; -+ -+ unsigned int l=0, h=8*sizeof(value); -+ -+ while (h-l > 1) -+ { -+ unsigned int t = (l+h)/2; -+ if (value >> t) -+ l = t; -+ else -+ h = t; -+ } -+ -+ return h; -+} -+ -+template -+unsigned int BytePrecision(const T &value) -+{ -+ unsigned int i; -+ for (i=sizeof(value); i; --i) -+ if (value >> (i-1)*8) -+ break; -+ -+ return i; -+} -+ - inline unsigned int BitsToBytes(unsigned int bitCount) - { - return ((bitCount+7)/(8)); -- cgit 1.4.1