summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2005-09-15 09:12:52 +0200
committerunknown <msvensson@neptunus.(none)>2005-09-15 09:12:52 +0200
commit137f0549fd2fd49eb8524ee300263c729bb0df8e (patch)
treef627183ff9713c48ad84c3326720e88400191dab
parentcae28e41a408623b24f2ed0ad62d57a8c6902169 (diff)
parent4de556a6e0fedb7e02ec4746ca8e7782580b6fdf (diff)
downloadmariadb-git-137f0549fd2fd49eb8524ee300263c729bb0df8e.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/bug12526/my50-bug12526
-rw-r--r--config/ac-macros/yassl.m411
-rw-r--r--extra/yassl/taocrypt/src/Makefile.am7
-rw-r--r--extra/yassl/taocrypt/src/integer.cpp8
3 files changed, 20 insertions, 6 deletions
diff --git a/config/ac-macros/yassl.m4 b/config/ac-macros/yassl.m4
index 92133339343..7af39db48be 100644
--- a/config/ac-macros/yassl.m4
+++ b/config/ac-macros/yassl.m4
@@ -20,6 +20,17 @@ AC_DEFUN([MYSQL_CHECK_YASSL], [
-L\$(top_builddir)/extra/yassl/taocrypt/src -ltaocrypt"
openssl_includes="-I\$(top_srcdir)/extra/yassl/include"
AC_DEFINE([HAVE_OPENSSL], [1], [Defined by configure. Using yaSSL for OpenSSL emulation.])
+
+ # System specific checks
+ yassl_integer_extra_cxxflags=""
+ case $SYSTEM_TYPE--$CXX_VERSION in
+ sparc*solaris*--*Sun*C++*5.6*)
+ # Disable inlining when compiling taocrypt/src/integer.cpp
+ yassl_integer_extra_cxxflags="+d"
+ ;;
+ esac
+ AC_SUBST([yassl_integer_extra_cxxflags])
+
else
yassl_dir=""
AC_MSG_RESULT(no)
diff --git a/extra/yassl/taocrypt/src/Makefile.am b/extra/yassl/taocrypt/src/Makefile.am
index 4549c218d87..c4fc4607622 100644
--- a/extra/yassl/taocrypt/src/Makefile.am
+++ b/extra/yassl/taocrypt/src/Makefile.am
@@ -1,9 +1,12 @@
INCLUDES = -I../include -I../../mySTL
-noinst_LTLIBRARIES = libtaocrypt.la
+noinst_LTLIBRARIES = libtaocrypt.la libtaoint.la
libtaocrypt_la_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 \
+ coding.cpp dh.cpp des.cpp dsa.cpp file.cpp hash.cpp \
md2.cpp md5.cpp misc.cpp random.cpp ripemd.cpp rsa.cpp sha.cpp \
template_instnt.cpp
+libtaocrypt_la_LIBADD = libtaoint.la
+libtaoint_la_SOURCES = integer.cpp
+libtaoint_la_CXXFLAGS = @yassl_integer_extra_cxxflags@
EXTRA_DIST = ../include/*.hpp
AM_CXXFLAGS = -DYASSL_PURE_C
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index 01bd5b2ec94..71324b04b92 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -568,13 +568,13 @@ public:
static word Add(word *C, const word *A, const word *B, unsigned int N);
static word Subtract(word *C, const word *A, const word*B, unsigned int N);
- static void Multiply2(word *C, const word *A, const word *B);
- static word Multiply2Add(word *C, const word *A, const word *B);
+ static inline void Multiply2(word *C, const word *A, const word *B);
+ static inline word Multiply2Add(word *C, const word *A, const word *B);
static void Multiply4(word *C, const word *A, const word *B);
static void Multiply8(word *C, const word *A, const word *B);
static inline unsigned int MultiplyRecursionLimit() {return 8;}
- static void Multiply2Bottom(word *C, const word *A, const word *B);
+ static inline void Multiply2Bottom(word *C, const word *A, const word *B);
static void Multiply4Bottom(word *C, const word *A, const word *B);
static void Multiply8Bottom(word *C, const word *A, const word *B);
static inline unsigned int MultiplyBottomRecursionLimit() {return 8;}
@@ -668,7 +668,7 @@ void Portable::Multiply2(word *C, const word *A, const word *B)
C[3] = t.GetHighHalf();
}
-void Portable::Multiply2Bottom(word *C, const word *A, const word *B)
+inline void Portable::Multiply2Bottom(word *C, const word *A, const word *B)
{
DWord t = DWord::Multiply(A[0], B[0]);
C[0] = t.GetLowHalf();