List:Internals« Previous MessageNext Message »
From:svoj Date:May 26 2005 11:08am
Subject:bk commit into 5.0 tree (svoj:1.1917)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of svoj. When svoj does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.1917 05/05/26 14:08:14 svoj@stripped +13 -0
  WL#2286 - Compile MySQL w/YASSL support
  Merge with latest yaSSL, move templates instantiation into template.cpp.

  extra/yassl/taocrypt/src/template.cpp
    1.1 05/05/26 14:08:10 svoj@stripped +30 -0

  extra/yassl/src/template.cpp
    1.1 05/05/26 14:08:10 svoj@stripped +41 -0

  extra/yassl/taocrypt/src/template.cpp
    1.0 05/05/26 14:08:10 svoj@stripped +0 -0
    BitKeeper file
/home/svoj/devel/mysql/yassl-mysql-5.0/extra/yassl/taocrypt/src/template.cpp

  extra/yassl/taocrypt/src/rsa.cpp
    1.5 05/05/26 14:08:10 svoj@stripped +0 -17
    Move instantiation to template.cpp.

  extra/yassl/taocrypt/src/integer.cpp
    1.7 05/05/26 14:08:10 svoj@stripped +5 -14
    Merge with latest yaSSL, move instantiation to template.cpp.

  extra/yassl/taocrypt/src/algebra.cpp
    1.3 05/05/26 14:08:10 svoj@stripped +0 -2
    Move instantiation to template.cpp.

  extra/yassl/taocrypt/src/Makefile.am
    1.4 05/05/26 14:08:10 svoj@stripped +2 -1
    template.cpp added to libtaocrypt_a_SOURCES.

  extra/yassl/taocrypt/include/misc.hpp
    1.5 05/05/26 14:08:10 svoj@stripped +4 -3
    Merge with latest yaSSL

  extra/yassl/taocrypt/include/integer.hpp
    1.6 05/05/26 14:08:10 svoj@stripped +5 -6
    Merge with latest yaSSL

  extra/yassl/src/yassl_imp.cpp
    1.5 05/05/26 14:08:10 svoj@stripped +1 -25
    Move instantiation to template.cpp.

  extra/yassl/src/template.cpp
    1.0 05/05/26 14:08:10 svoj@stripped +0 -0
    BitKeeper file /home/svoj/devel/mysql/yassl-mysql-5.0/extra/yassl/src/template.cpp

  extra/yassl/src/crypto_wrapper.cpp
    1.4 05/05/26 14:08:10 svoj@stripped +0 -6
    Move instantiation to template.cpp.

  extra/yassl/src/Makefile.am
    1.4 05/05/26 14:08:09 svoj@stripped +1 -1
    Include template.cpp into libyassl_a_SOURCES

  extra/yassl/mySTL/vector.hpp
    1.3 05/05/26 14:08:09 svoj@stripped +0 -1
    Merge with latest yaSSL

  extra/yassl/mySTL/list.hpp
    1.4 05/05/26 14:08:09 svoj@stripped +9 -7
    Merge with latest yaSSL

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	svoj
# Host:	svoj.pils.ru
# Root:	/home/svoj/devel/mysql/yassl-mysql-5.0

--- 1.3/extra/yassl/mySTL/list.hpp	2005-05-20 23:52:35 +05:00
+++ 1.4/extra/yassl/mySTL/list.hpp	2005-05-26 14:08:09 +05:00
@@ -38,13 +38,15 @@
 
 template<typename T> 
 class list {
+
 #ifdef __SUNPRO_CC
 /*
-  Sun Forte 7 C++ v. 5.4 needs class 'node' be public to be visible to
-  the nested class 'iterator' (a non-standard behaviour).
+   Sun Forte 7 C++ v. 5.4 needs class 'node' public to be visible to
+   the nested class 'iterator' (a non-standard behaviour).
 */
 public:
 #endif
+
     struct node {
         node(T t) : prev_(0), next_(0), value_(t) {}
 
@@ -94,22 +96,22 @@
             return *this;
         }
 
-        iterator& operator++(int)
+        iterator operator++(int)
         {
             iterator tmp = *this;
             current_ = current_->next_;
-            return *this;
+            return tmp;
         }
 
-        iterator& operator--(int)
+        iterator operator--(int)
         {
             iterator tmp = *this;
             current_ = current_->prev_;
-            return *this;
+            return tmp;
         }
 
         bool operator==(const iterator& other) const
-        {
+        { 
             return current_ == other.current_;
         }
 

--- 1.2/extra/yassl/mySTL/vector.hpp	2005-05-20 19:32:41 +05:00
+++ 1.3/extra/yassl/mySTL/vector.hpp	2005-05-26 14:08:09 +05:00
@@ -27,7 +27,6 @@
 #ifndef mySTL_VECTOR_HPP
 #define mySTL_VECTOR_HPP
 
-
 #include "helpers.hpp"    // construct, destory, fill, etc.
 #include "algorithm.hpp"  // swap
 #include <new>            // ::operator new and delete, placement too

--- 1.3/extra/yassl/src/Makefile.am	2005-05-05 19:19:22 +05:00
+++ 1.4/extra/yassl/src/Makefile.am	2005-05-26 14:08:09 +05:00
@@ -3,5 +3,5 @@
 noinst_LIBRARIES = libyassl.a
 libyassl_a_SOURCES = buffer.cpp cert_wrapper.cpp crypto_wrapper.cpp \
 	handshake.cpp lock.cpp log.cpp socket_wrapper.cpp ssl.cpp \
-	timer.cpp yassl_imp.cpp yassl_error.cpp yassl_int.cpp
+	template.cpp timer.cpp yassl_imp.cpp yassl_error.cpp yassl_int.cpp
 EXTRA_DIST = ../include/*.hpp ../include/openssl/*.h

--- 1.3/extra/yassl/src/crypto_wrapper.cpp	2005-05-25 00:15:00 +05:00
+++ 1.4/extra/yassl/src/crypto_wrapper.cpp	2005-05-26 14:08:10 +05:00
@@ -965,10 +965,4 @@
 
 } // namespace
 
-#ifdef __GNUC__
-template class TaoCrypt::HMAC<TaoCrypt::MD5>;
-template class TaoCrypt::HMAC<TaoCrypt::SHA>;
-template class TaoCrypt::HMAC<TaoCrypt::RIPEMD160>;
-#endif
-
 #endif // !USE_CRYPTOPP_LIB
--- New file ---
+++ extra/yassl/src/template.cpp	05/05/26 14:08:10
#include "runtime.hpp"
#include "yassl_int.hpp"
#include "crypto_wrapper.hpp"
#include "hmac.hpp"
#include "md5.hpp"
#include "sha.hpp"
#include "ripemd.hpp"

#ifdef __GNUC__
#if !defined(USE_CRYPTOPP_LIB)
namespace TaoCrypt {
template class HMAC<MD5>;
template class HMAC<SHA>;
template class HMAC<RIPEMD160>;
}
#endif

namespace mySTL {
// yassl_imp.hpp
template class mySTL::list<unsigned char*>;
template yaSSL::del_ptr_zero mySTL::for_each(mySTL::list<unsigned char*>::iterator,
mySTL::list<unsigned char*>::iterator, yaSSL::del_ptr_zero);
template mySTL::pair<int, yaSSL::Message* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int,
yaSSL::Message* (*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*,
mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message*
(*)()>*);
template mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*,
mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*>(mySTL::pair<int,
yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*,
mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*);
template void mySTL::destroy<mySTL::pair<int, yaSSL::Message*
(*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int,
yaSSL::Message* (*)()>*);
template void mySTL::destroy<mySTL::pair<int, yaSSL::HandShakeBase*
(*)()>*>(mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int,
yaSSL::HandShakeBase* (*)()>*);
template mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*>(mySTL::pair<int,
yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*);
template void mySTL::destroy<mySTL::pair<int, yaSSL::ServerKeyBase*
(*)()>*>(mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int,
yaSSL::ServerKeyBase* (*)()>*);
template mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*>(mySTL::pair<int,
yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*);
template class mySTL::list<TaoCrypt::Signer*>;
template class mySTL::list<yaSSL::SSL_SESSION*>;
template class mySTL::list<yaSSL::input_buffer*>;
template class mySTL::list<yaSSL::output_buffer*>;
template class mySTL::list<yaSSL::x509*>;
template void mySTL::destroy<mySTL::pair<int, yaSSL::ClientKeyBase*
(*)()>*>(mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int,
yaSSL::ClientKeyBase* (*)()>*);
template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<TaoCrypt::Signer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<TaoCrypt::Signer*>::iterator,
mySTL::list<TaoCrypt::Signer*>::iterator, yaSSL::del_ptr_zero);
template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::SSL_SESSION*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::SSL_SESSION*>::iterator,
mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::del_ptr_zero);
template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::input_buffer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::input_buffer*>::iterator,
mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::del_ptr_zero);
template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::output_buffer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::output_buffer*>::iterator,
mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::del_ptr_zero);
template yaSSL::del_ptr_zero mySTL::for_each<mySTL::list<yaSSL::x509*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::x509*>::iterator,
mySTL::list<yaSSL::x509*>::iterator, yaSSL::del_ptr_zero);
}
#endif


--- 1.4/extra/yassl/src/yassl_imp.cpp	2005-05-25 00:15:00 +05:00
+++ 1.5/extra/yassl/src/yassl_imp.cpp	2005-05-26 14:08:10 +05:00
@@ -2089,29 +2089,5 @@
     ckf.Register(fortezza_kea, CreateFortezzaClient);
 }
 
-} // namespace
 
-#ifdef __GNUC__
-namespace mySTL {
-template class mySTL::list<unsigned char*>;
-template yaSSL::del_ptr_zero mySTL::for_each(mySTL::list<unsigned char*>::iterator,
mySTL::list<unsigned char*>::iterator, yaSSL::del_ptr_zero);
-template mySTL::pair<int, yaSSL::Message* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int,
yaSSL::Message* (*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*,
mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message*
(*)()>*);
-template mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*,
mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*>(mySTL::pair<int,
yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*,
mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*);
-template void mySTL::destroy<mySTL::pair<int, yaSSL::Message*
(*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int,
yaSSL::Message* (*)()>*);
-template void mySTL::destroy<mySTL::pair<int, yaSSL::HandShakeBase*
(*)()>*>(mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int,
yaSSL::HandShakeBase* (*)()>*);
-template mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*>(mySTL::pair<int,
yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*);
-template void mySTL::destroy<mySTL::pair<int, yaSSL::ServerKeyBase*
(*)()>*>(mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int,
yaSSL::ServerKeyBase* (*)()>*);
-template mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*
mySTL::uninit_copy<mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*>(mySTL::pair<int,
yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*,
mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*);
-template class mySTL::list<TaoCrypt::Signer*>;
-template class mySTL::list<yaSSL::SSL_SESSION*>;
-template class mySTL::list<yaSSL::input_buffer*>;
-template class mySTL::list<yaSSL::output_buffer*>;
-template class mySTL::list<yaSSL::x509*>;
-template void mySTL::destroy<mySTL::pair<int, yaSSL::ClientKeyBase*
(*)()>*>(mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int,
yaSSL::ClientKeyBase* (*)()>*);
-template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<TaoCrypt::Signer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<TaoCrypt::Signer*>::iterator,
mySTL::list<TaoCrypt::Signer*>::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::SSL_SESSION*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::SSL_SESSION*>::iterator,
mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::input_buffer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::input_buffer*>::iterator,
mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::output_buffer*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::output_buffer*>::iterator,
mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero
mySTL::for_each<mySTL::list<yaSSL::x509*>::iterator,
yaSSL::del_ptr_zero>(mySTL::list<yaSSL::x509*>::iterator,
mySTL::list<yaSSL::x509*>::iterator, yaSSL::del_ptr_zero);
-}
-#endif
+} // namespace

--- 1.5/extra/yassl/taocrypt/include/integer.hpp	2005-05-25 19:11:31 +05:00
+++ 1.6/extra/yassl/taocrypt/include/integer.hpp	2005-05-26 14:08:10 +05:00
@@ -136,9 +136,8 @@
 
         ~Integer() {}
       
-        static const Integer &Zero();
-        static const Integer &One();
-        static const Integer &Two();
+        static const Integer& Zero();
+        static const Integer& One();
 
         Integer& Ref() { return *this; }
 
@@ -252,9 +251,6 @@
     friend class ModularArithmetic;
     friend class MontgomeryRepresentation;
 
-    static const Integer zero;
-    static const Integer one;
-    static const Integer two;
     Integer(word value, unsigned int length);
     int PositiveCompare(const Integer& t) const;
 
@@ -267,6 +263,9 @@
                                Integer& dividend, const Integer& divisor);
     AlignedWordBlock reg_;
     Sign             sign_;
+
+    static const Integer zero_;
+    static const Integer one_;
 };
 
 inline bool operator==(const Integer& a, const Integer& b) 

--- 1.4/extra/yassl/taocrypt/include/misc.hpp	2005-05-25 00:15:01 +05:00
+++ 1.5/extra/yassl/taocrypt/include/misc.hpp	2005-05-26 14:08:10 +05:00
@@ -68,10 +68,11 @@
     typedef word32 lword;
 #endif
 
-// FIXME the !defined(__sun) is a temporarely solution until asm for
-// __x86_64__ and Solaris is written
+
+// TODO: FIXME, add asm multiply for x86_64 on Solaris and remove !__sun 
+    
 #if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || \
-    defined(__mips64) || (defined(__x86_64__) && !defined(__sun))
+    defined(__mips64)  || (defined(__x86_64__) && !defined(__sun))
 // These platforms have 64-bit CPU registers. Unfortunately most C++ compilers
 // don't allow any way to access the 64-bit by 64-bit multiply instruction
 // without using assembly, so in order to use word64 as word, the assembly

--- 1.3/extra/yassl/taocrypt/src/Makefile.am	2005-05-05 19:19:22 +05:00
+++ 1.4/extra/yassl/taocrypt/src/Makefile.am	2005-05-26 14:08:10 +05:00
@@ -3,5 +3,6 @@
 noinst_LIBRARIES = libtaocrypt.a
 libtaocrypt_a_SOURCES  = aes.cpp aestables.cpp algebra.cpp arc4.cpp asn.cpp \
 	coding.cpp dh.cpp des.cpp dsa.cpp file.cpp hash.cpp integer.cpp \
-	md2.cpp md5.cpp misc.cpp random.cpp ripemd.cpp rsa.cpp sha.cpp
+	md2.cpp md5.cpp misc.cpp random.cpp ripemd.cpp rsa.cpp sha.cpp \
+	template.cpp
 EXTRA_DIST = ../include/*.hpp

--- 1.2/extra/yassl/taocrypt/src/algebra.cpp	2005-05-25 00:15:01 +05:00
+++ 1.3/extra/yassl/taocrypt/src/algebra.cpp	2005-05-26 14:08:10 +05:00
@@ -322,8 +322,6 @@
 #ifdef __GNUC__
 namespace mySTL {
 template TaoCrypt::WindowSlider* uninit_copy<TaoCrypt::WindowSlider*,
TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*,
TaoCrypt::WindowSlider*);
-template vector<TaoCrypt::Integer>*
uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int,
vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int,
vector<TaoCrypt::Integer> const&);
 template void destroy<TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*,
TaoCrypt::WindowSlider*);
-template void
destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*,
vector<TaoCrypt::Integer>*);
 }
 #endif

--- 1.6/extra/yassl/taocrypt/src/integer.cpp	2005-05-25 19:11:31 +05:00
+++ 1.7/extra/yassl/taocrypt/src/integer.cpp	2005-05-26 14:08:10 +05:00
@@ -2691,25 +2691,19 @@
 }
 
 
-const Integer Integer::zero(1,2);
+const Integer Integer::zero_;
 
 const Integer &Integer::Zero()
 {
-    return zero;
+    return zero_;
 }
 
-const Integer Integer::one(1,2);
 
-const Integer &Integer::One()
-{
-    return one;
-}
+const Integer Integer::one_(1,2);
 
-const Integer Integer::two(1,2);
-
-const Integer &Integer::Two()
+const Integer &Integer::One()
 {
-    return two;
+    return one_;
 }
 
 
@@ -3948,9 +3942,6 @@
 
 #ifdef __GNUC__
 template unsigned int DivideThreeWordsByTwo<unsigned int, DWord>(unsigned int*,
unsigned int, unsigned int, DWord*);
-#if defined(SSE2_INTRINSICS_AVAILABLE)
-template AlignedAllocator<unsigned int>::pointer StdReallocate<unsigned int,
AlignedAllocator<unsigned int> >(AlignedAllocator<unsigned int>&,
unsigned int*, AlignedAllocator<unsigned int>::size_type,
AlignedAllocator<unsigned int>::size_type, bool);
-#endif
 #endif
 
 } // namespace

--- 1.4/extra/yassl/taocrypt/src/rsa.cpp	2005-05-25 00:15:01 +05:00
+++ 1.5/extra/yassl/taocrypt/src/rsa.cpp	2005-05-26 14:08:10 +05:00
@@ -210,22 +210,5 @@
                                   lengths.PaddedBlockBitLength(), plain);
 }
 
-#ifdef __GNUC__
-template AllocatorWithCleanup<unsigned char>::pointer StdReallocate<unsigned
char, AllocatorWithCleanup<unsigned char> >(AllocatorWithCleanup<unsigned
char>&, unsigned char*, AllocatorWithCleanup<unsigned char>::size_type,
AllocatorWithCleanup<unsigned char>::size_type, bool);
-template AllocatorWithCleanup<unsigned int>::pointer StdReallocate<unsigned int,
AllocatorWithCleanup<unsigned int> >(AllocatorWithCleanup<unsigned
int>&, unsigned int*, AllocatorWithCleanup<unsigned int>::size_type,
AllocatorWithCleanup<unsigned int>::size_type, bool);
-template class RSA_Decryptor<RSA_BlockType2>;
-template class RSA_Encryptor<RSA_BlockType1>;
-template class RSA_Encryptor<RSA_BlockType2>;
-#endif
 
 } // namespace
-
-#ifdef __GNUC__
-namespace mySTL {
-template TaoCrypt::Integer* uninit_copy<TaoCrypt::Integer*,
TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
-template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned int,
TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer const&);
-template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
-}
-#endif
-
-
--- New file ---
+++ extra/yassl/taocrypt/src/template.cpp	05/05/26 14:08:10
#include "runtime.hpp"
#include "integer.hpp"
#include "rsa.hpp"
#include "algebra.hpp"
#include "vector.hpp"

#ifdef __GNUC__
namespace TaoCrypt {
// integer.cpp
#if defined(SSE2_INTRINSICS_AVAILABLE)
template AlignedAllocator<unsigned int>::pointer StdReallocate<unsigned int,
AlignedAllocator<unsigned int> >(AlignedAllocator<unsigned int>&,
unsigned int*, AlignedAllocator<unsigned int>::size_type,
AlignedAllocator<unsigned int>::size_type, bool);
#endif
// rsa.cpp
template AllocatorWithCleanup<unsigned char>::pointer StdReallocate<unsigned
char, AllocatorWithCleanup<unsigned char> >(AllocatorWithCleanup<unsigned
char>&, unsigned char*, AllocatorWithCleanup<unsigned char>::size_type,
AllocatorWithCleanup<unsigned char>::size_type, bool);
template AllocatorWithCleanup<unsigned int>::pointer StdReallocate<unsigned int,
AllocatorWithCleanup<unsigned int> >(AllocatorWithCleanup<unsigned
int>&, unsigned int*, AllocatorWithCleanup<unsigned int>::size_type,
AllocatorWithCleanup<unsigned int>::size_type, bool);
template class RSA_Decryptor<RSA_BlockType2>;
template class RSA_Encryptor<RSA_BlockType1>;
template class RSA_Encryptor<RSA_BlockType2>;
}

namespace mySTL {
// algebra.cpp
template vector<TaoCrypt::Integer>*
uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int,
vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int,
vector<TaoCrypt::Integer> const&);
template void
destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*,
vector<TaoCrypt::Integer>*);
// rsa.cpp
template TaoCrypt::Integer* uninit_copy<TaoCrypt::Integer*,
TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned int,
TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer const&);
template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
}
#endif

Thread
bk commit into 5.0 tree (svoj:1.1917)svoj26 May