List:Commits« Previous MessageNext Message »
From:msvensson Date:April 12 2006 9:53am
Subject:bk commit into 5.0 tree (msvensson:1.2139) BUG#18815
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson 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.2139 06/04/12 11:53:43 msvensson@shellback.(none) +7 -0
  Bug#18815 libmysql using yassl can't be linked with c program
  - Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/taocrypt/src/integer.cpp
    1.18 06/04/12 11:53:38 msvensson@shellback.(none) +6 -6
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/taocrypt/src/algebra.cpp
    1.7 06/04/12 11:53:37 msvensson@shellback.(none) +3 -1
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/taocrypt/include/runtime.hpp
    1.10 06/04/12 11:53:37 msvensson@shellback.(none) +16 -2
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/taocrypt/include/integer.hpp
    1.8 06/04/12 11:53:37 msvensson@shellback.(none) +2 -2
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/src/yassl_int.cpp
    1.11 06/04/12 11:53:37 msvensson@shellback.(none) +8 -7
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/src/handshake.cpp
    1.6 06/04/12 11:53:37 msvensson@shellback.(none) +3 -1
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

  extra/yassl/include/yassl_int.hpp
    1.7 06/04/12 11:53:37 msvensson@shellback.(none) +4 -4
    Fixes for undefined symbols when linking with libmysql that includes yassl from C on Solaris 

# 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:	msvensson
# Host:	shellback.(none)
# Root:	/home/msvensson/mysql/my50-bug18815

--- 1.6/extra/yassl/include/yassl_int.hpp	2005-06-14 22:47:56 +02:00
+++ 1.7/extra/yassl/include/yassl_int.hpp	2006-04-12 11:53:37 +02:00
@@ -123,11 +123,11 @@
 
     friend sslFactory& GetSSL_Factory();        // singleton creator
 private:
-    static sslFactory instance_;
-
+  
     sslFactory(const sslFactory&);              // hide copy
     sslFactory& operator=(const sslFactory&);   // and assign   
 };
+static sslFactory* factory_instance_ = NULL; // Singleton
 
 
 #undef X509_NAME  // wincrypt.h clash
@@ -216,11 +216,11 @@
 
     friend Sessions& GetSessions(); // singleton creator
 private:
-    static Sessions instance_;
-
     Sessions(const Sessions&);              // hide copy
     Sessions& operator=(const Sessions&);   // and assign
 };
+static Sessions* sessions_instance_ = NULL; // Singleton
+
 
 
 Sessions&   GetSessions();      // forward singletons

--- 1.5/extra/yassl/src/handshake.cpp	2005-12-20 00:47:44 +01:00
+++ 1.6/extra/yassl/src/handshake.cpp	2006-04-12 11:53:37 +02:00
@@ -648,12 +648,14 @@
 }
 
 
-mySTL::auto_ptr<input_buffer> null_buffer(ysDelete);
 
 // do process input requests
 mySTL::auto_ptr<input_buffer>
 DoProcessReply(SSL& ssl, mySTL::auto_ptr<input_buffer> buffered)
 {
+
+    mySTL::auto_ptr<input_buffer> null_buffer(ysDelete);
+
     ssl.getSocket().wait();                  // wait for input if blocking
     uint ready = ssl.getSocket().get_ready();
     if (!ready) {

--- 1.10/extra/yassl/src/yassl_int.cpp	2005-07-01 17:00:54 +02:00
+++ 1.11/extra/yassl/src/yassl_int.cpp	2006-04-12 11:53:37 +02:00
@@ -1361,19 +1361,20 @@
 }
 
 
-Sessions Sessions::instance_; // simple singleton
-
 Sessions& GetSessions()
 {
-    return Sessions::instance_;
+  if (!sessions_instance_)
+    sessions_instance_= new (ys) Sessions;
+  return *sessions_instance_;
+  
 }
 
 
-sslFactory sslFactory::instance_; // simple singleton
-
 sslFactory& GetSSL_Factory()
-{   
-    return sslFactory::instance_;
+{  
+  if (!factory_instance_)
+    factory_instance_= new (ys) sslFactory;
+  return *factory_instance_;
 }
 
 

--- 1.7/extra/yassl/taocrypt/include/integer.hpp	2005-06-10 17:09:35 +02:00
+++ 1.8/extra/yassl/taocrypt/include/integer.hpp	2006-04-12 11:53:37 +02:00
@@ -275,9 +275,9 @@
     AlignedWordBlock reg_;
     Sign             sign_;
 
-    static const Integer zero_;
-    static const Integer one_;
 };
+static Integer *one_instance_= NULL;
+static Integer *zero_instance_= NULL;
 
 inline bool operator==(const Integer& a, const Integer& b) 
                         {return a.Compare(b)==0;}

--- 1.9/extra/yassl/taocrypt/include/runtime.hpp	2005-09-08 11:36:07 +02:00
+++ 1.10/extra/yassl/taocrypt/include/runtime.hpp	2006-04-12 11:53:37 +02:00
@@ -23,9 +23,22 @@
  * version of yaSSL, user must define YASSL_PURE_C
 */
 
+#ifndef yaSSL_NEW_HPP
+#ifdef __sun
 
+#include <assert.h>
+
+// Handler for pure virtual functions
+namespace __Crun {
+static void pure_error(void)
+{
+    assert("Pure virtual method called." == "Aborted");
+}
+} // namespace __Crun
+
+#endif // __sun
 
-#if !defined(yaSSL_NEW_HPP) && defined(__GNUC__) 
+#if defined(__GNUC__) 
 #if !(defined(__ICC) || defined(__INTEL_COMPILER))
 
 #define yaSSL_NEW_HPP
@@ -48,5 +61,6 @@
 
 #endif // __GNUC__ > 2
 #endif // ! _ICC
-#endif // yaSSL_NEW_HPP && __GNUC__
+#endif //  __GNUC__
+#endif // !yaSSL_NEW_HPP
 

--- 1.6/extra/yassl/taocrypt/src/algebra.cpp	2005-07-01 17:00:54 +02:00
+++ 1.7/extra/yassl/taocrypt/src/algebra.cpp	2006-04-12 11:53:37 +02:00
@@ -76,7 +76,9 @@
 const Integer& AbstractEuclideanDomain::Gcd(const Element &a,
                                             const Element &b) const
 {
-    Element g[3]={b, a};
+    mySTL::vector<Element> g(3);
+    g[0]= b;
+    g[1]= a;
     unsigned int i0=0, i1=1, i2=2;
 
     while (!Equal(g[i1], this->Identity()))

--- 1.17/extra/yassl/taocrypt/src/integer.cpp	2005-09-14 10:34:32 +02:00
+++ 1.18/extra/yassl/taocrypt/src/integer.cpp	2006-04-12 11:53:38 +02:00
@@ -2709,19 +2709,19 @@
 }
 
 
-const Integer Integer::zero_;
-
 const Integer &Integer::Zero()
 {
-    return zero_;
+  if (!zero_instance_)
+    zero_instance_= new (tc) Integer;
+  return *zero_instance_;
 }
 
 
-const Integer Integer::one_(1,2);
-
 const Integer &Integer::One()
 {
-    return one_;
+  if (!one_instance_)
+    one_instance_= new (tc) Integer(1,2);
+  return *one_instance_;
 }
 
 
Thread
bk commit into 5.0 tree (msvensson:1.2139) BUG#18815msvensson12 Apr