remove HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
This commit is contained in:
parent
cd0970c480
commit
a058974440
@ -41,7 +41,6 @@
|
||||
#cmakedefine HAVE_FNMATCH_H 1
|
||||
#cmakedefine HAVE_FPU_CONTROL_H 1
|
||||
#cmakedefine HAVE_GRP_H 1
|
||||
#cmakedefine HAVE_EXPLICIT_TEMPLATE_INSTANTIATION 1
|
||||
#cmakedefine HAVE_IA64INTRIN_H 1
|
||||
#cmakedefine HAVE_IEEEFP_H 1
|
||||
#cmakedefine HAVE_INTTYPES_H 1
|
||||
|
@ -66,15 +66,7 @@ ENDIF()
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# MySQL "canonical" GCC flags. At least -fno-rtti flag affects
|
||||
# ABI and cannot be simply removed.
|
||||
SET(CMAKE_CXX_FLAGS
|
||||
"${CMAKE_CXX_FLAGS} -fno-implicit-templates -fno-exceptions -fno-rtti")
|
||||
IF(CMAKE_CXX_FLAGS)
|
||||
STRING(REGEX MATCH "fno-implicit-templates" NO_IMPLICIT_TEMPLATES
|
||||
${CMAKE_CXX_FLAGS})
|
||||
IF (NO_IMPLICIT_TEMPLATES)
|
||||
SET(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION TRUE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
||||
|
||||
IF (CMAKE_EXE_LINKER_FLAGS MATCHES " -static "
|
||||
OR CMAKE_EXE_LINKER_FLAGS MATCHES " -static$")
|
||||
|
@ -30,10 +30,6 @@ SET(YASSL_SOURCES src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp sr
|
||||
src/log.cpp src/socket_wrapper.cpp src/ssl.cpp src/timer.cpp src/yassl_error.cpp
|
||||
src/yassl_imp.cpp src/yassl_int.cpp)
|
||||
|
||||
IF(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION)
|
||||
SET(YASSL_SOURCES ${YASSL_SOURCES} src/template_instnt.cpp)
|
||||
ENDIF()
|
||||
|
||||
ADD_CONVENIENCE_LIBRARY(yassl ${YASSL_SOURCES})
|
||||
RESTRICT_SYMBOL_EXPORTS(yassl)
|
||||
|
||||
|
@ -993,25 +993,4 @@ x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info)
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
namespace yaSSL {
|
||||
template void ysDelete<DiffieHellman::DHImpl>(DiffieHellman::DHImpl*);
|
||||
template void ysDelete<Integer::IntegerImpl>(Integer::IntegerImpl*);
|
||||
template void ysDelete<RSA::RSAImpl>(RSA::RSAImpl*);
|
||||
template void ysDelete<DSS::DSSImpl>(DSS::DSSImpl*);
|
||||
template void ysDelete<RandomPool::RandomImpl>(RandomPool::RandomImpl*);
|
||||
template void ysDelete<AES::AESImpl>(AES::AESImpl*);
|
||||
template void ysDelete<RC4::RC4Impl>(RC4::RC4Impl*);
|
||||
template void ysDelete<DES_EDE::DES_EDEImpl>(DES_EDE::DES_EDEImpl*);
|
||||
template void ysDelete<DES::DESImpl>(DES::DESImpl*);
|
||||
template void ysDelete<HMAC_RMD::HMAC_RMDImpl>(HMAC_RMD::HMAC_RMDImpl*);
|
||||
template void ysDelete<HMAC_SHA::HMAC_SHAImpl>(HMAC_SHA::HMAC_SHAImpl*);
|
||||
template void ysDelete<HMAC_MD5::HMAC_MD5Impl>(HMAC_MD5::HMAC_MD5Impl*);
|
||||
template void ysDelete<RMD::RMDImpl>(RMD::RMDImpl*);
|
||||
template void ysDelete<SHA::SHAImpl>(SHA::SHAImpl*);
|
||||
template void ysDelete<MD5::MD5Impl>(MD5::MD5Impl*);
|
||||
}
|
||||
#endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
|
||||
#endif // !USE_CRYPTOPP_LIB
|
||||
|
@ -1,110 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
|
||||
/* Explicit template instantiation requests
|
||||
*/
|
||||
|
||||
|
||||
#include "runtime.hpp"
|
||||
#include "handshake.hpp"
|
||||
#include "yassl_int.hpp"
|
||||
#include "crypto_wrapper.hpp"
|
||||
#include "hmac.hpp"
|
||||
#include "md5.hpp"
|
||||
#include "sha.hpp"
|
||||
#include "ripemd.hpp"
|
||||
#include "openssl/ssl.h"
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
|
||||
namespace mySTL {
|
||||
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 class list<yaSSL::Digest*>;
|
||||
template class list<yaSSL::BulkCipher*>;
|
||||
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);
|
||||
template yaSSL::del_ptr_zero for_each<mySTL::list<yaSSL::Digest*>::iterator, yaSSL::del_ptr_zero>(mySTL::list<yaSSL::Digest*>::iterator, mySTL::list<yaSSL::Digest*>::iterator, yaSSL::del_ptr_zero);
|
||||
template yaSSL::del_ptr_zero for_each<mySTL::list<yaSSL::BulkCipher*>::iterator, yaSSL::del_ptr_zero>(mySTL::list<yaSSL::BulkCipher*>::iterator, mySTL::list<yaSSL::BulkCipher*>::iterator, yaSSL::del_ptr_zero);
|
||||
template bool list<yaSSL::ThreadError>::erase(list<yaSSL::ThreadError>::iterator);
|
||||
template void list<yaSSL::ThreadError>::push_back(yaSSL::ThreadError);
|
||||
template void list<yaSSL::ThreadError>::pop_front();
|
||||
template void list<yaSSL::ThreadError>::pop_back();
|
||||
template list<yaSSL::ThreadError>::~list();
|
||||
template pair<int, yaSSL::Message* (*)()>* GetArrayMemory<pair<int, yaSSL::Message* (*)()> >(size_t);
|
||||
template void FreeArrayMemory<pair<int, yaSSL::Message* (*)()> >(pair<int, yaSSL::Message* (*)()>*);
|
||||
template pair<int, yaSSL::HandShakeBase* (*)()>* GetArrayMemory<pair<int, yaSSL::HandShakeBase* (*)()> >(size_t);
|
||||
template void FreeArrayMemory<pair<int, yaSSL::HandShakeBase* (*)()> >(pair<int, yaSSL::HandShakeBase* (*)()>*);
|
||||
template pair<int, yaSSL::ServerKeyBase* (*)()>* GetArrayMemory<pair<int, yaSSL::ServerKeyBase* (*)()> >(size_t);
|
||||
template void FreeArrayMemory<pair<int, yaSSL::ServerKeyBase* (*)()> >(pair<int, yaSSL::ServerKeyBase* (*)()>*);
|
||||
template pair<int, yaSSL::ClientKeyBase* (*)()>* GetArrayMemory<pair<int, yaSSL::ClientKeyBase* (*)()> >(size_t);
|
||||
template void FreeArrayMemory<pair<int, yaSSL::ClientKeyBase* (*)()> >(pair<int, yaSSL::ClientKeyBase* (*)()>*);
|
||||
}
|
||||
|
||||
namespace yaSSL {
|
||||
template void ysDelete<SSL_CTX>(yaSSL::SSL_CTX*);
|
||||
template void ysDelete<SSL>(yaSSL::SSL*);
|
||||
template void ysDelete<BIGNUM>(yaSSL::BIGNUM*);
|
||||
template void ysDelete<unsigned char>(unsigned char*);
|
||||
template void ysDelete<DH>(yaSSL::DH*);
|
||||
template void ysDelete<TaoCrypt::Signer>(TaoCrypt::Signer*);
|
||||
template void ysDelete<SSL_SESSION>(yaSSL::SSL_SESSION*);
|
||||
template void ysDelete<input_buffer>(input_buffer*);
|
||||
template void ysDelete<output_buffer>(output_buffer*);
|
||||
template void ysDelete<x509>(x509*);
|
||||
template void ysDelete<Auth>(Auth*);
|
||||
template void ysDelete<HandShakeBase>(HandShakeBase*);
|
||||
template void ysDelete<ServerKeyBase>(ServerKeyBase*);
|
||||
template void ysDelete<ClientKeyBase>(ClientKeyBase*);
|
||||
template void ysDelete<SSL_METHOD>(SSL_METHOD*);
|
||||
template void ysDelete<DiffieHellman>(DiffieHellman*);
|
||||
template void ysDelete<BulkCipher>(BulkCipher*);
|
||||
template void ysDelete<Digest>(Digest*);
|
||||
template void ysDelete<X509>(X509*);
|
||||
template void ysDelete<Message>(Message*);
|
||||
template void ysDelete<sslFactory>(sslFactory*);
|
||||
template void ysDelete<Sessions>(Sessions*);
|
||||
template void ysDelete<Errors>(Errors*);
|
||||
template void ysArrayDelete<unsigned char>(unsigned char*);
|
||||
template void ysArrayDelete<char>(char*);
|
||||
|
||||
template int min<int>(int, int);
|
||||
template uint16 min<uint16>(uint16, uint16);
|
||||
template unsigned int min<unsigned int>(unsigned int, unsigned int);
|
||||
template unsigned long min<unsigned long>(unsigned long, unsigned long);
|
||||
}
|
||||
|
||||
#endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
|
@ -2600,13 +2600,3 @@ extern "C" void yaSSL_CleanUp()
|
||||
yaSSL::errorsInstance = 0;
|
||||
}
|
||||
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
namespace mySTL {
|
||||
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);
|
||||
template mySTL::list<yaSSL::ThreadError>::iterator find_if<mySTL::list<yaSSL::ThreadError>::iterator, yaSSL::yassl_int_cpp_local2::thr_match>(mySTL::list<yaSSL::ThreadError>::iterator, mySTL::list<yaSSL::ThreadError>::iterator, yaSSL::yassl_int_cpp_local2::thr_match);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -29,10 +29,6 @@ SET(TAOCRYPT_SOURCES src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp
|
||||
include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp
|
||||
include/rabbit.hpp include/hc128.hpp)
|
||||
|
||||
IF(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION)
|
||||
SET(TAOCRYPT_SOURCES ${TAOCRYPT_SOURCES} src/template_instnt.cpp)
|
||||
ENDIF()
|
||||
|
||||
ADD_CONVENIENCE_LIBRARY(taocrypt ${TAOCRYPT_SOURCES})
|
||||
RESTRICT_SYMBOL_EXPORTS(taocrypt)
|
||||
|
||||
|
@ -325,13 +325,3 @@ void AbstractRing::SimultaneousExponentiate(Integer *results,
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
#ifdef HAVE_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*);
|
||||
template TaoCrypt::WindowSlider* GetArrayMemory<TaoCrypt::WindowSlider>(size_t);
|
||||
template void FreeArrayMemory<TaoCrypt::WindowSlider>(TaoCrypt::WindowSlider*);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -3890,17 +3890,5 @@ Integer CRT(const Integer &xp, const Integer &p, const Integer &xq,
|
||||
return p * (u * (xq-xp) % q) + xp;
|
||||
}
|
||||
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
#ifndef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
||||
template hword DivideThreeWordsByTwo<hword, Word>(hword*, hword, hword, Word*);
|
||||
#endif
|
||||
template word DivideThreeWordsByTwo<word, DWord>(word*, word, word, DWord*);
|
||||
#ifdef SSE2_INTRINSICS_AVAILABLE
|
||||
template class AlignedAllocator<word>;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
|
@ -1,81 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
|
||||
/* Explicit template instantiation requests
|
||||
*/
|
||||
|
||||
|
||||
#include "runtime.hpp"
|
||||
#include "integer.hpp"
|
||||
#include "rsa.hpp"
|
||||
#include "sha.hpp"
|
||||
#include "md5.hpp"
|
||||
#include "hmac.hpp"
|
||||
#include "ripemd.hpp"
|
||||
#include "pwdbased.hpp"
|
||||
#include "algebra.hpp"
|
||||
#include "vector.hpp"
|
||||
#include "hash.hpp"
|
||||
|
||||
#ifdef HAVE_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);
|
||||
#endif
|
||||
|
||||
template class RSA_Decryptor<RSA_BlockType2>;
|
||||
template class RSA_Encryptor<RSA_BlockType1>;
|
||||
template class RSA_Encryptor<RSA_BlockType2>;
|
||||
template void tcDelete<HASH>(HASH*);
|
||||
template void tcDelete<Integer>(Integer*);
|
||||
template void tcArrayDelete<byte>(byte*);
|
||||
template AllocatorWithCleanup<byte>::pointer StdReallocate<byte, AllocatorWithCleanup<byte> >(AllocatorWithCleanup<byte>&, byte*, AllocatorWithCleanup<byte>::size_type, AllocatorWithCleanup<byte>::size_type, bool);
|
||||
template void tcArrayDelete<word>(word*);
|
||||
template AllocatorWithCleanup<word>::pointer StdReallocate<word, AllocatorWithCleanup<word> >(AllocatorWithCleanup<word>&, word*, AllocatorWithCleanup<word>::size_type, AllocatorWithCleanup<word>::size_type, bool);
|
||||
|
||||
#ifndef TAOCRYPT_SLOW_WORD64 // defined when word != word32
|
||||
template void tcArrayDelete<word32>(word32*);
|
||||
template AllocatorWithCleanup<word32>::pointer StdReallocate<word32, AllocatorWithCleanup<word32> >(AllocatorWithCleanup<word32>&, word32*, AllocatorWithCleanup<word32>::size_type, AllocatorWithCleanup<word32>::size_type, bool);
|
||||
#endif
|
||||
|
||||
template void tcArrayDelete<char>(char*);
|
||||
|
||||
template class PBKDF2_HMAC<SHA>;
|
||||
template class HMAC<MD5>;
|
||||
template class HMAC<SHA>;
|
||||
template class HMAC<RIPEMD160>;
|
||||
}
|
||||
|
||||
namespace mySTL {
|
||||
template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, size_t, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, size_t, vector<TaoCrypt::Integer> const&);
|
||||
template void destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*, vector<TaoCrypt::Integer>*);
|
||||
template TaoCrypt::Integer* uninit_copy<TaoCrypt::Integer*, TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
|
||||
template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, size_t, TaoCrypt::Integer>(TaoCrypt::Integer*, size_t, TaoCrypt::Integer const&);
|
||||
template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
|
||||
template TaoCrypt::byte* GetArrayMemory<TaoCrypt::byte>(size_t);
|
||||
template void FreeArrayMemory<TaoCrypt::byte>(TaoCrypt::byte*);
|
||||
template TaoCrypt::Integer* GetArrayMemory<TaoCrypt::Integer>(size_t);
|
||||
template void FreeArrayMemory<TaoCrypt::Integer>(TaoCrypt::Integer*);
|
||||
template vector<TaoCrypt::Integer>* GetArrayMemory<vector<TaoCrypt::Integer> >(size_t);
|
||||
template void FreeArrayMemory<vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*);
|
||||
template void FreeArrayMemory<void>(void*);
|
||||
}
|
||||
|
||||
#endif
|
@ -50,11 +50,6 @@
|
||||
Instansiate templates and static variables
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<Create_field>;
|
||||
template class List_iterator<Create_field>;
|
||||
#endif
|
||||
|
||||
static const char *zero_timestamp="0000-00-00 00:00:00.000000";
|
||||
|
||||
/* number of bytes to store second_part part of the TIMESTAMP(N) */
|
||||
|
@ -45,10 +45,6 @@
|
||||
if (my_b_write((file),(uchar*) (from),param->ref_length)) \
|
||||
DBUG_RETURN(1);
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class Bounded_queue<uchar, uchar>;
|
||||
#endif
|
||||
|
||||
/* functions defined in this file */
|
||||
|
||||
static uchar *read_buffpek_from_file(IO_CACHE *buffer_file, uint count,
|
||||
|
11
sql/item.cc
11
sql/item.cc
@ -9655,14 +9655,3 @@ const char *dbug_print_item(Item *item)
|
||||
|
||||
#endif /*DBUG_OFF*/
|
||||
|
||||
/*****************************************************************************
|
||||
** Instantiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<Item>;
|
||||
template class List_iterator<Item>;
|
||||
template class List_iterator_fast<Item>;
|
||||
template class List_iterator_fast<Item_field>;
|
||||
template class List<List_item>;
|
||||
#endif
|
||||
|
@ -173,12 +173,3 @@ bool Cached_item_decimal::cmp()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Instansiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<Cached_item>;
|
||||
template class List_iterator<Cached_item>;
|
||||
#endif
|
||||
|
@ -159,7 +159,3 @@ bool process_key_caches(process_key_cache_t func, void *param)
|
||||
return res != 0;
|
||||
}
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class I_List_iterator<NAMED_ILINK>;
|
||||
#endif
|
||||
|
||||
|
@ -8380,23 +8380,3 @@ void refresh_status(THD *thd)
|
||||
mysql_mutex_unlock(&LOCK_thread_count);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Instantiate variables for missing storage engines
|
||||
This section should go away soon
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Instantiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
/* Used templates */
|
||||
template class I_List<THD>;
|
||||
template class I_List_iterator<THD>;
|
||||
template class I_List<i_string>;
|
||||
template class I_List<i_string_pair>;
|
||||
template class I_List<Statement>;
|
||||
template class I_List_iterator<Statement>;
|
||||
#endif
|
||||
|
||||
|
@ -14114,11 +14114,3 @@ void QUICK_GROUP_MIN_MAX_SELECT::dbug_dump(int indent, bool verbose)
|
||||
|
||||
#endif /* !DBUG_OFF */
|
||||
|
||||
/*****************************************************************************
|
||||
** Instantiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<QUICK_RANGE>;
|
||||
template class List_iterator<QUICK_RANGE>;
|
||||
#endif
|
||||
|
@ -5667,11 +5667,6 @@ bool rpl_master_erroneous_autoinc(THD *thd)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class I_List_iterator<i_string>;
|
||||
template class I_List_iterator<i_string_pair>;
|
||||
#endif
|
||||
|
||||
/**
|
||||
@} (end of group Replication)
|
||||
*/
|
||||
|
@ -7021,17 +7021,6 @@ bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name,
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Instantiate used templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List_iterator<LEX_COLUMN>;
|
||||
template class List_iterator<LEX_USER>;
|
||||
template class List<LEX_COLUMN>;
|
||||
template class List<LEX_USER>;
|
||||
#endif
|
||||
|
||||
/**
|
||||
Validate if a user can proxy as another user
|
||||
|
||||
|
@ -73,23 +73,6 @@ char empty_c_string[1]= {0}; /* used for not defined db */
|
||||
|
||||
const char * const THD::DEFAULT_WHERE= "field list";
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Instansiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
/* Used templates */
|
||||
template class List<Key>;
|
||||
template class List_iterator<Key>;
|
||||
template class List<Key_part_spec>;
|
||||
template class List_iterator<Key_part_spec>;
|
||||
template class List<Alter_drop>;
|
||||
template class List_iterator<Alter_drop>;
|
||||
template class List<Alter_column>;
|
||||
template class List_iterator<Alter_column>;
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
** User variables
|
||||
****************************************************************************/
|
||||
@ -4981,27 +4964,6 @@ THD::binlog_prepare_pending_rows_event(TABLE* table, uint32 serv_id,
|
||||
DBUG_RETURN(pending); /* This is the current pending event */
|
||||
}
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
/*
|
||||
Instantiate the versions we need, we have -fno-implicit-template as
|
||||
compiling option.
|
||||
*/
|
||||
template Rows_log_event*
|
||||
THD::binlog_prepare_pending_rows_event(TABLE*, uint32, MY_BITMAP const*,
|
||||
size_t, size_t, bool,
|
||||
Write_rows_log_event*);
|
||||
|
||||
template Rows_log_event*
|
||||
THD::binlog_prepare_pending_rows_event(TABLE*, uint32, MY_BITMAP const*,
|
||||
size_t colcnt, size_t, bool,
|
||||
Delete_rows_log_event *);
|
||||
|
||||
template Rows_log_event*
|
||||
THD::binlog_prepare_pending_rows_event(TABLE*, uint32, MY_BITMAP const*,
|
||||
size_t colcnt, size_t, bool,
|
||||
Update_rows_log_event *);
|
||||
#endif
|
||||
|
||||
/* Declare in unnamed namespace. */
|
||||
CPP_UNNAMED_NS_START
|
||||
/**
|
||||
|
@ -4232,16 +4232,3 @@ void select_create::abort_result_set()
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Instansiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_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 /* HAVE_EXPLICIT_TEMPLATE_INSTANTIATION */
|
||||
|
@ -4437,6 +4437,3 @@ void binlog_unsafe_map_init()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class Mem_root_array<ORDER*, true>;
|
||||
#endif
|
||||
|
@ -11257,14 +11257,6 @@ public:
|
||||
COND_CMP(Item *a,Item_func *b) :and_level(a),cmp_func(b) {}
|
||||
};
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class I_List<COND_CMP>;
|
||||
template class I_List_iterator<COND_CMP>;
|
||||
template class List<Item_func_match>;
|
||||
template class List_iterator<Item_func_match>;
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
Find the multiple equality predicate containing a field.
|
||||
|
||||
|
@ -2148,10 +2148,6 @@ public:
|
||||
double progress;
|
||||
};
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class I_List<thread_info>;
|
||||
#endif
|
||||
|
||||
static const char *thread_state_info(THD *tmp)
|
||||
{
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
@ -8935,11 +8931,6 @@ ST_SCHEMA_TABLE schema_tables[]=
|
||||
};
|
||||
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List_iterator_fast<char>;
|
||||
template class List<char>;
|
||||
#endif
|
||||
|
||||
int initialize_schema_table(st_plugin_int *plugin)
|
||||
{
|
||||
ST_SCHEMA_TABLE *schema_table;
|
||||
|
@ -2021,18 +2021,3 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
Used templates
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<set_var_base>;
|
||||
template class List_iterator_fast<set_var_base>;
|
||||
template class Sys_var_integer<int, GET_INT, SHOW_SINT>;
|
||||
template class Sys_var_integer<uint, GET_UINT, SHOW_INT>;
|
||||
template class Sys_var_integer<ulong, GET_ULONG, SHOW_LONG>;
|
||||
template class Sys_var_integer<ha_rows, GET_HA_ROWS, SHOW_HA_ROWS>;
|
||||
template class Sys_var_integer<ulonglong, GET_ULL, SHOW_LONGLONG>;
|
||||
#endif
|
||||
|
||||
|
@ -6880,12 +6880,3 @@ uint TABLE_SHARE::actual_n_key_parts(THD *thd)
|
||||
ext_key_parts : key_parts;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Instansiate templates
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
|
||||
template class List<String>;
|
||||
template class List_iterator<String>;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user