diff options
author | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2011-07-21 18:34:41 +0000 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2011-07-21 18:34:41 +0000 |
commit | 2758c07f1ee596cdbb56c856588ed5820d6e9663 (patch) | |
tree | 24cd1ed9bbd441afa02d3e00eb1a915924ff6d5a /pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch | |
parent | 3815442cf4b0afeebd90eaa31b1dbfa0f4ca59fc (diff) | |
download | nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar.gz nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar.bz2 nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar.lz nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar.xz nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.tar.zst nixlib-2758c07f1ee596cdbb56c856588ed5820d6e9663.zip |
Updating mldonkey. I remove the patch needed for mips, as they put it upstream already.
svn path=/nixpkgs/trunk/; revision=27885
Diffstat (limited to 'pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch')
-rw-r--r-- | pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch | 103 |
1 files changed, 0 insertions, 103 deletions
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 <class T> 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 <typename T> -+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 <typename T> -+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)); |