Author: chaoflow
Date: Mon Feb 27 23:49:11 2012
New Revision: 32638
URL: https://nixos.org/websvn/nix/?rev=32638&sc=1

Log:
include upstream patch for salsa validation with gcc4.6

http://sourceforge.net/apps/trac/cryptopp/changeset/529

Added:
   
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch
Modified:
   
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/default.nix

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/default.nix
==============================================================================
--- 
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/default.nix 
    Mon Feb 27 23:25:54 2012        (r32637)
+++ 
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/default.nix 
    Mon Feb 27 23:49:11 2012        (r32638)
@@ -8,8 +8,10 @@
     sha256 = "0s7jhvnfihikqp1iwpdz03fad62xkjxci6jiahrh6f3sn664vrwq";
   };
 
-  patches = [ ./pic.patch ]
-    ++ stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch;
+  patches = [
+    ./pic.patch
+    ./salsa-gcc4.6.patch
+  ] ++ stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch;
 
 
   buildInputs = [ unzip ]

Added: 
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
nixpkgs/branches/stdenv-updates/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch
      Mon Feb 27 23:49:11 2012        (r32638)
@@ -0,0 +1,62 @@
+From fbccde3578feddb16f07be981da1d0f26209fd04 Mon Sep 17 00:00:00 2001
+From: weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>
+Date: Sun, 5 Jun 2011 21:07:11 +0000
+Subject: [PATCH 1/4] fix Salsa validation failure when compiling with GCC 4.6
+ (https://sourceforge.net/apps/trac/cryptopp/ticket/12)
+
+git-svn-id: https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk@529 
57ff6487-cd31-0410-9ec3-f628ee90f5f0
+---
+ c5/salsa.cpp |   21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+# NOTE: remove the c5 path component
+
+diff --git a/salsa.cpp b/salsa.cpp
+index bd216ee..bdc5d75 100755
+--- a/salsa.cpp
++++ b/salsa.cpp
+@@ -122,17 +122,17 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation 
operation, byte *output
+       if (HasSSE2())
+       {
+       #if CRYPTOPP_BOOL_X64
+-              #define REG_output                      %4
+-              #define REG_input                       %1
++              #define REG_output                      %1
++              #define REG_input                       %0
+               #define REG_iterationCount      %2
+-              #define REG_state                       %3
+-              #define REG_rounds                      %0
++              #define REG_state                       %4              /* 
constant */
++              #define REG_rounds                      %3              /* 
constant */
+               #define REG_roundsLeft          eax
+               #define REG_temp32                      edx
+               #define REG_temp                        rdx
+-              #define SSE2_WORKSPACE          %5
++              #define SSE2_WORKSPACE          %5              /* constant */
+ 
+-              FixedSizeAlignedSecBlock<byte, 32*16> workspace;
++              CRYPTOPP_ALIGN_DATA(16) byte workspace[16*32];
+       #else
+               #define REG_output                      edi
+               #define REG_input                       eax
+@@ -457,12 +457,13 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation 
operation, byte *output
+ #ifdef __GNUC__
+               AS_POP_IF86(    bx)
+               ".att_syntax prefix;"
+-                      : 
+       #if CRYPTOPP_BOOL_X64
+-                      : "r" (m_rounds), "r" (input), "r" (iterationCount), 
"r" (m_state.data()), "r" (output), "r" (workspace.m_ptr)
+-                      : "%eax", "%edx", "memory", "cc", "%xmm0", "%xmm1", 
"%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", 
"%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
++                      : "+r" (input), "+r" (output), "+r" (iterationCount)
++                      : "r" (m_rounds), "r" (m_state.m_ptr), "r" (workspace)
++                      : "%eax", "%rdx", "memory", "cc", "%xmm0", "%xmm1", 
"%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", 
"%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
+       #else
+-                      : "d" (m_rounds), "a" (input), "c" (iterationCount), 
"S" (m_state.data()), "D" (output)
++                      : "+a" (input), "+D" (output), "+c" (iterationCount)
++                      : "d" (m_rounds), "S" (m_state.m_ptr)
+                       : "memory", "cc"
+       #endif
+               );
+-- 
+1.7.9.2
+
_______________________________________________
nix-commits mailing list
nix-comm...@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to