List:Internals« Previous MessageNext Message »
From:svoj Date:June 19 2005 6:46pm
Subject:bk commit into 5.0 tree (svoj:1.1959)
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.1959 05/06/19 21:46:44 svoj@stripped +22 -0
  WL#2286 - Compile MySQL w/YASSL support
  Fix for yaSSL link failures with Forte Developer 7, MIPSpro Compilers, Compaq C++.
  These compilers have problem with implicit template instantiation in archives
  (libyassl.a, libtaocrypt.a). Instantiate templates explicitly.
  
  Fix for yaSSL link failure on powermacg5 (gcc 3.3). When -O3 is specified gcc inlines
  __cxa_pure_virtual. This is wrong behavior, __cxa_pure_virtual must never be inlined.

  sql/table.cc
    1.169 05/06/19 21:46:38 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_show.cc
    1.253 05/06/19 21:46:38 svoj@stripped +2 -2
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_select.cc
    1.340 05/06/19 21:46:38 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_map.cc
    1.15 05/06/19 21:46:38 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_insert.cc
    1.160 05/06/19 21:46:38 svoj@stripped +2 -2
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_class.cc
    1.185 05/06/19 21:46:38 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/sql_acl.cc
    1.160 05/06/19 21:46:38 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/slave.cc
    1.247 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/set_var.cc
    1.119 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/opt_range.cc
    1.170 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/mysqld.cc
    1.471 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/item_buff.cc
    1.14 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/item.cc
    1.137 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  sql/field.cc
    1.265 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  extra/yassl/taocrypt/src/template_instnt.cpp
    1.4 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  extra/yassl/taocrypt/src/integer.cpp
    1.12 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  extra/yassl/taocrypt/src/algebra.cpp
    1.4 05/06/19 21:46:37 svoj@stripped +1 -1
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  extra/yassl/taocrypt/include/runtime.hpp
    1.6 05/06/19 21:46:37 svoj@stripped +2 -0
    Fix for link failure on powermacg5 (gcc 3.3). __cxa_pure_virtual must never be inlined.

  extra/yassl/src/yassl_int.cpp
    1.8 05/06/19 21:46:37 svoj@stripped +4 -4
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
    More portable templates instantiation.

  extra/yassl/src/template_instnt.cpp
    1.2 05/06/19 21:46:36 svoj@stripped +21 -21
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
    More portable templates instantiation.

  extra/yassl/src/crypto_wrapper.cpp
    1.5 05/06/19 21:46:36 svoj@stripped +2 -2
    Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.

  configure.in
    1.316 05/06/19 21:46:36 svoj@stripped +14 -0
    Better CXX_VERSION guessing.
    EXPLICIT_TEMPLATE_INSTANTIATION macro indicates whether to instantiate templates explicitly.
    Instantiate templates explicitly on MIPSpro, Compaq, Forte.

# 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.315/configure.in	2005-06-16 16:44:04 +05:00
+++ 1.316/configure.in	2005-06-19 21:46:36 +05:00
@@ -201,6 +201,8 @@
     ;;
   *)
 CXX_VERSION=`$CXX --version | sed 1q`
+CXX_VERSION=${CXX_VERSION:-`$CXX -V|sed 1q`} # trying harder for Sun and SGI
+CXX_VERSION=${CXX_VERSION:-`$CXX -V 2>&1|sed 1q`} # even harder for Alpha
     ;;
 esac
 if test $? -eq "0"
@@ -365,7 +367,19 @@
   # Disable exceptions as they seams to create problems with gcc and threads.
   # mysqld doesn't use run-time-type-checking, so we disable it.
   CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
+  CXXFLAGS="$CXXFLAGS -DEXPLICIT_TEMPLATE_INSTANTIATION"
 fi
+
+case $CXX_VERSION in
+  MIPSpro*)
+    CXXFLAGS="$CXXFLAGS -no_prelink -DEXPLICIT_TEMPLATE_INSTANTIATION"
+  ;;
+  Compaq*)
+    CXXFLAGS="$CXXFLAGS -nopt -DEXPLICIT_TEMPLATE_INSTANTIATION"
+  ;;
+  Forte*)
+    CXXFLAGS="$CXXFLAGS -instance=explicit -DEXPLICIT_TEMPLATE_INSTANTIATION"
+esac
 
 # Avoid bug in fcntl on some versions of linux
 AC_MSG_CHECKING("if we should use 'skip-locking' as default for $target_os")

--- 1.264/sql/field.cc	2005-06-15 20:36:36 +05:00
+++ 1.265/sql/field.cc	2005-06-19 21:46:37 +05:00
@@ -38,7 +38,7 @@
   Instansiate templates and static variables
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<create_field>;
 template class List_iterator<create_field>;
 #endif

--- 1.136/sql/item.cc	2005-06-15 18:58:52 +05:00
+++ 1.137/sql/item.cc	2005-06-19 21:46:37 +05:00
@@ -5387,7 +5387,7 @@
 ** Instantiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<Item>;
 template class List_iterator<Item>;
 template class List_iterator_fast<Item>;

--- 1.13/sql/item_buff.cc	2005-06-07 18:37:56 +05:00
+++ 1.14/sql/item_buff.cc	2005-06-19 21:46:37 +05:00
@@ -146,7 +146,7 @@
 ** Instansiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<Item_buff>;
 template class List_iterator<Item_buff>;
 #endif

--- 1.470/sql/mysqld.cc	2005-06-17 02:58:25 +05:00
+++ 1.471/sql/mysqld.cc	2005-06-19 21:46:37 +05:00
@@ -7072,7 +7072,7 @@
   Instantiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 /* Used templates */
 template class I_List<THD>;
 template class I_List_iterator<THD>;

--- 1.169/sql/opt_range.cc	2005-06-14 14:52:38 +05:00
+++ 1.170/sql/opt_range.cc	2005-06-19 21:46:37 +05:00
@@ -8918,7 +8918,7 @@
 ** Instantiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<QUICK_RANGE>;
 template class List_iterator<QUICK_RANGE>;
 #endif

--- 1.246/sql/slave.cc	2005-06-02 09:15:15 +05:00
+++ 1.247/sql/slave.cc	2005-06-19 21:46:37 +05:00
@@ -5002,7 +5002,7 @@
 }
 
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class I_List_iterator<i_string>;
 template class I_List_iterator<i_string_pair>;
 #endif

--- 1.159/sql/sql_acl.cc	2005-06-10 01:11:47 +05:00
+++ 1.160/sql/sql_acl.cc	2005-06-19 21:46:38 +05:00
@@ -5325,7 +5325,7 @@
   Instantiate used templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List_iterator<LEX_COLUMN>;
 template class List_iterator<LEX_USER>;
 template class List<LEX_COLUMN>;

--- 1.184/sql/sql_class.cc	2005-06-07 18:37:56 +05:00
+++ 1.185/sql/sql_class.cc	2005-06-19 21:46:38 +05:00
@@ -49,7 +49,7 @@
 ** Instansiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 /* Used templates */
 template class List<Key>;
 template class List_iterator<Key>;

--- 1.159/sql/sql_insert.cc	2005-06-06 23:21:27 +05:00
+++ 1.160/sql/sql_insert.cc	2005-06-19 21:46:38 +05:00
@@ -2362,11 +2362,11 @@
   Instansiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List_iterator_fast<List_item>;
 #ifndef EMBEDDED_LIBRARY
 template class I_List<delayed_insert>;
 template class I_List_iterator<delayed_insert>;
 template class I_List<delayed_row>;
 #endif /* EMBEDDED_LIBRARY */
-#endif /* __GNUC__ */
+#endif /* EXPLICIT_TEMPLATE_INSTANTIATION */

--- 1.14/sql/sql_map.cc	2005-06-06 23:21:27 +05:00
+++ 1.15/sql/sql_map.cc	2005-06-19 21:46:38 +05:00
@@ -138,7 +138,7 @@
 ** Instansiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 /* Used templates */
 template class I_List<mapped_files>;
 template class I_List_iterator<mapped_files>;

--- 1.339/sql/sql_select.cc	2005-06-16 21:56:07 +05:00
+++ 1.340/sql/sql_select.cc	2005-06-19 21:46:38 +05:00
@@ -6275,7 +6275,7 @@
   COND_CMP(Item *a,Item_func *b) :and_level(a),cmp_func(b) {}
 };
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class I_List<COND_CMP>;
 template class I_List_iterator<COND_CMP>;
 template class List<Item_func_match>;

--- 1.252/sql/sql_show.cc	2005-06-16 13:27:17 +05:00
+++ 1.253/sql/sql_show.cc	2005-06-19 21:46:38 +05:00
@@ -1102,7 +1102,7 @@
   char *query;
 };
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class I_List<thread_info>;
 #endif
 
@@ -3879,7 +3879,7 @@
 };
 
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List_iterator_fast<char>;
 template class List<char>;
 #endif

--- 1.168/sql/table.cc	2005-06-01 18:35:04 +05:00
+++ 1.169/sql/table.cc	2005-06-19 21:46:38 +05:00
@@ -2236,7 +2236,7 @@
 ** Instansiate templates
 *****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<String>;
 template class List_iterator<String>;
 #endif

--- 1.118/sql/set_var.cc	2005-06-09 21:01:46 +05:00
+++ 1.119/sql/set_var.cc	2005-06-19 21:46:37 +05:00
@@ -3406,7 +3406,7 @@
   Used templates
 ****************************************************************************/
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 template class List<set_var_base>;
 template class List_iterator_fast<set_var_base>;
 template class I_List_iterator<NAMED_LIST>;

--- 1.4/extra/yassl/src/crypto_wrapper.cpp	2005-05-31 20:56:25 +05:00
+++ 1.5/extra/yassl/src/crypto_wrapper.cpp	2005-06-19 21:46:36 +05:00
@@ -971,7 +971,7 @@
 } // namespace
 
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 namespace yaSSL {
 template void ysDelete<DiffieHellman::DHImpl>(DiffieHellman::DHImpl*);
 template void ysDelete<Integer::IntegerImpl>(Integer::IntegerImpl*);
@@ -989,6 +989,6 @@
 template void ysDelete<SHA::SHAImpl>(SHA::SHAImpl*);
 template void ysDelete<MD5::MD5Impl>(MD5::MD5Impl*);
 }
-#endif // __GNUC__
+#endif // EXPLICIT_TEMPLATE_INSTANTIATION
 
 #endif // !USE_CRYPTOPP_LIB

--- 1.1/extra/yassl/src/template_instnt.cpp	2005-05-31 20:56:26 +05:00
+++ 1.2/extra/yassl/src/template_instnt.cpp	2005-06-19 21:46:36 +05:00
@@ -8,7 +8,7 @@
 #include "ripemd.hpp"
 #include "openssl/ssl.h"
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 #if !defined(USE_CRYPTOPP_LIB)
 namespace TaoCrypt {
 template class HMAC<MD5>;
@@ -18,26 +18,26 @@
 #endif
 
 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);
+template class list<unsigned char*>;
+template yaSSL::del_ptr_zero for_each(mySTL::list<unsigned char*>::iterator, mySTL::list<unsigned char*>::iterator, yaSSL::del_ptr_zero);
+template pair<int, yaSSL::Message* (*)()>* 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 pair<int, yaSSL::HandShakeBase* (*)()>* 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 destroy<mySTL::pair<int, yaSSL::Message* (*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message* (*)()>*);
+template void destroy<mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*>(mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*);
+template pair<int, yaSSL::ServerKeyBase* (*)()>* 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 destroy<mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*);
+template pair<int, yaSSL::ClientKeyBase* (*)()>* 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 list<TaoCrypt::Signer*>;
+template class list<yaSSL::SSL_SESSION*>;
+template class list<yaSSL::input_buffer*>;
+template class list<yaSSL::output_buffer*>;
+template class list<yaSSL::x509*>;
+template void destroy<mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*);
+template yaSSL::del_ptr_zero 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 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 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 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 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);
 }
 
 namespace yaSSL {

--- 1.7/extra/yassl/src/yassl_int.cpp	2005-05-31 20:56:25 +05:00
+++ 1.8/extra/yassl/src/yassl_int.cpp	2005-06-19 21:46:37 +05:00
@@ -1975,10 +1975,10 @@
 
 } // namespace
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 namespace mySTL {
-template yaSSL::yassl_int_cpp_local1::SumData mySTL::for_each<mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData>(mySTL::list<yaSSL::input_buffer*>::iterator, mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData);
-template yaSSL::yassl_int_cpp_local1::SumBuffer mySTL::for_each<mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer>(mySTL::list<yaSSL::output_buffer*>::iterator, mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer);
-template mySTL::list<yaSSL::SSL_SESSION*>::iterator mySTL::find_if<mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match>(mySTL::list<yaSSL::SSL_SESSION*>::iterator, mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match);
+template yaSSL::yassl_int_cpp_local1::SumData for_each<mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData>(mySTL::list<yaSSL::input_buffer*>::iterator, mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData);
+template yaSSL::yassl_int_cpp_local1::SumBuffer for_each<mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer>(mySTL::list<yaSSL::output_buffer*>::iterator, mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer);
+template mySTL::list<yaSSL::SSL_SESSION*>::iterator find_if<mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match>(mySTL::list<yaSSL::SSL_SESSION*>::iterator, mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match);
 }
 #endif

--- 1.5/extra/yassl/taocrypt/include/runtime.hpp	2005-05-31 20:56:25 +05:00
+++ 1.6/extra/yassl/taocrypt/include/runtime.hpp	2005-06-19 21:46:37 +05:00
@@ -34,6 +34,8 @@
 extern "C" {
 #include <assert.h>
 
+/* Disallow inline __cxa_pure_virtual() */
+static int __cxa_pure_virtual() __attribute__((noinline));
 static int __cxa_pure_virtual()
 {
     // oops, pure virtual called!

--- 1.3/extra/yassl/taocrypt/src/algebra.cpp	2005-05-31 20:56:25 +05:00
+++ 1.4/extra/yassl/taocrypt/src/algebra.cpp	2005-06-19 21:46:37 +05:00
@@ -319,7 +319,7 @@
 
 } // namespace
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 namespace mySTL {
 template TaoCrypt::WindowSlider* uninit_copy<TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
 template void destroy<TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);

--- 1.11/extra/yassl/taocrypt/src/integer.cpp	2005-06-16 16:35:02 +05:00
+++ 1.12/extra/yassl/taocrypt/src/integer.cpp	2005-06-19 21:46:37 +05:00
@@ -3956,7 +3956,7 @@
     return p * (u * (xq-xp) % q) + xp;
 }
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 #ifndef TAOCRYPT_NATIVE_DWORD_AVAILABLE
 template hword DivideThreeWordsByTwo<hword, Word>(hword*, hword, hword, Word*);
 #endif

--- 1.3/extra/yassl/taocrypt/src/template_instnt.cpp	2005-06-03 16:42:57 +05:00
+++ 1.4/extra/yassl/taocrypt/src/template_instnt.cpp	2005-06-19 21:46:37 +05:00
@@ -4,7 +4,7 @@
 #include "vector.hpp"
 #include "hash.hpp"
 
-#ifdef __GNUC__
+#ifdef EXPLICIT_TEMPLATE_INSTANTIATION
 namespace TaoCrypt {
 #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);
Thread
bk commit into 5.0 tree (svoj:1.1959)svoj19 Jun