diff options
-rw-r--r-- | configure.in | 14 | ||||
-rw-r--r-- | extra/yassl/src/crypto_wrapper.cpp | 4 | ||||
-rw-r--r-- | extra/yassl/src/template_instnt.cpp | 42 | ||||
-rw-r--r-- | extra/yassl/src/yassl_int.cpp | 8 | ||||
-rw-r--r-- | extra/yassl/taocrypt/include/runtime.hpp | 2 | ||||
-rw-r--r-- | extra/yassl/taocrypt/src/algebra.cpp | 2 | ||||
-rw-r--r-- | extra/yassl/taocrypt/src/integer.cpp | 2 | ||||
-rw-r--r-- | extra/yassl/taocrypt/src/template_instnt.cpp | 2 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 18 | ||||
-rw-r--r-- | sql/field.cc | 2 | ||||
-rw-r--r-- | sql/item.cc | 2 | ||||
-rw-r--r-- | sql/item_buff.cc | 2 | ||||
-rw-r--r-- | sql/mysqld.cc | 2 | ||||
-rw-r--r-- | sql/opt_range.cc | 2 | ||||
-rw-r--r-- | sql/set_var.cc | 2 | ||||
-rw-r--r-- | sql/slave.cc | 2 | ||||
-rw-r--r-- | sql/sql_acl.cc | 2 | ||||
-rw-r--r-- | sql/sql_class.cc | 2 | ||||
-rw-r--r-- | sql/sql_insert.cc | 4 | ||||
-rw-r--r-- | sql/sql_map.cc | 2 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 | ||||
-rw-r--r-- | sql/sql_show.cc | 4 | ||||
-rw-r--r-- | sql/table.cc | 2 |
23 files changed, 72 insertions, 54 deletions
diff --git a/configure.in b/configure.in index 0a28b8a87f3..5207ca66cac 100644 --- a/configure.in +++ b/configure.in @@ -202,6 +202,8 @@ CXX_VERSION=`$CXX -version | grep -i version` ;; *) 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" @@ -366,8 +368,20 @@ then # 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") # Any variation of Linux diff --git a/extra/yassl/src/crypto_wrapper.cpp b/extra/yassl/src/crypto_wrapper.cpp index ff1b4b630c2..976518ace91 100644 --- a/extra/yassl/src/crypto_wrapper.cpp +++ b/extra/yassl/src/crypto_wrapper.cpp @@ -971,7 +971,7 @@ x509* PemToDer(const char* fname, CertType type) } // 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<RMD::RMDImpl>(RMD::RMDImpl*); template void ysDelete<SHA::SHAImpl>(SHA::SHAImpl*); template void ysDelete<MD5::MD5Impl>(MD5::MD5Impl*); } -#endif // __GNUC__ +#endif // EXPLICIT_TEMPLATE_INSTANTIATION #endif // !USE_CRYPTOPP_LIB diff --git a/extra/yassl/src/template_instnt.cpp b/extra/yassl/src/template_instnt.cpp index 4ad1ec29249..43f3d551b7a 100644 --- a/extra/yassl/src/template_instnt.cpp +++ b/extra/yassl/src/template_instnt.cpp @@ -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 @@ template class HMAC<RIPEMD160>; #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 { diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp index 06be7a15503..ab9188a5d61 100644 --- a/extra/yassl/src/yassl_int.cpp +++ b/extra/yassl/src/yassl_int.cpp @@ -1975,10 +1975,10 @@ X509_NAME* X509::GetSubject() } // 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 diff --git a/extra/yassl/taocrypt/include/runtime.hpp b/extra/yassl/taocrypt/include/runtime.hpp index 01106b6f960..1b364049452 100644 --- a/extra/yassl/taocrypt/include/runtime.hpp +++ b/extra/yassl/taocrypt/include/runtime.hpp @@ -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! diff --git a/extra/yassl/taocrypt/src/algebra.cpp b/extra/yassl/taocrypt/src/algebra.cpp index 7608e78b0ed..d274b262497 100644 --- a/extra/yassl/taocrypt/src/algebra.cpp +++ b/extra/yassl/taocrypt/src/algebra.cpp @@ -319,7 +319,7 @@ void AbstractRing::SimultaneousExponentiate(Integer *results, } // 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*); diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp index ebfefb027b3..5c5dd59fde0 100644 --- a/extra/yassl/taocrypt/src/integer.cpp +++ b/extra/yassl/taocrypt/src/integer.cpp @@ -3956,7 +3956,7 @@ Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, 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 diff --git a/extra/yassl/taocrypt/src/template_instnt.cpp b/extra/yassl/taocrypt/src/template_instnt.cpp index 81a8273c5c3..c643bd6d73a 100644 --- a/extra/yassl/taocrypt/src/template_instnt.cpp +++ b/extra/yassl/taocrypt/src/template_instnt.cpp @@ -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); diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 7c4f867ec57..d192c53bd2d 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -445,9 +445,9 @@ sub command_line_setup () { # These are defaults for things that are set on the command line $opt_suite= "main"; # Special default suite - my $opt_master_myport= 9306; - my $opt_slave_myport= 9308; - $opt_ndbcluster_port= 9350; + my $opt_master_myport= 9306; + my $opt_slave_myport= 9308; + $opt_ndbcluster_port= 9350; # Read the command line # Note: Keep list, and the order, in sync with usage at end of this file @@ -458,7 +458,7 @@ sub command_line_setup () { 'ps-protocol' => \$opt_ps_protocol, 'bench' => \$opt_bench, 'small-bench' => \$opt_small_bench, - 'no-manager' => \$opt_no_manager, + 'no-manager' => \$opt_no_manager, # Currently not used # Control what test suites or cases to run 'force' => \$opt_force, @@ -472,7 +472,7 @@ sub command_line_setup () { 'master_port=i' => \$opt_master_myport, 'slave_port=i' => \$opt_slave_myport, 'ndbcluster_port=i' => \$opt_ndbcluster_port, - 'manager-port' => \$opt_manager_port, + 'manager-port=i' => \$opt_manager_port, # Currently not used # Test case authoring 'record' => \$opt_record, @@ -840,7 +840,7 @@ sub executable_setup () { $exe_mysqlbinlog= "$path_client_bindir/mysqlbinlog"; $exe_mysqladmin= "$path_client_bindir/mysqladmin"; $exe_mysql= "$path_client_bindir/mysql"; - $exe_mysql_fix_system_tables= "$path_client_bindir/scripts/mysql_fix_privilege_tables"; + $exe_mysql_fix_system_tables= "$path_client_bindir/mysql_fix_privilege_tables"; if ( -d "$glob_basedir/share/mysql/english" ) { @@ -1715,7 +1715,7 @@ sub mysqld_arguments ($$$$$) { mtr_add_arg($args, "%s--server-id=1", $prefix); mtr_add_arg($args, "%s--socket=%s", $prefix, $master->[$idx]->{'path_mysock'}); - mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:50M", $prefix); + mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:128M:autoextend", $prefix); mtr_add_arg($args, "%s--local-infile", $prefix); mtr_add_arg($args, "%s--datadir=%s", $prefix, $master->[$idx]->{'path_myddir'}); @@ -1802,6 +1802,7 @@ sub mysqld_arguments ($$$$$) { mtr_add_arg($args, "%s--key_buffer_size=1M", $prefix); mtr_add_arg($args, "%s--sort_buffer=256K", $prefix); mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix); + mtr_add_arg($args, "%s--log-bin-trust-routine-creators", $prefix); if ( $opt_with_openssl ) { @@ -2216,7 +2217,8 @@ Options that specify ports master_port=PORT Specify the port number used by the first master slave_port=PORT Specify the port number used by the first slave - ndbcluster_port=i Specify the port number used by cluster FIXME + ndbcluster_port=PORT Specify the port number used by cluster + manager-port=PORT Specify the port number used by manager (currently not used) Options for test case authoring diff --git a/sql/field.cc b/sql/field.cc index 73eb267ce89..b066b520020 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -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 diff --git a/sql/item.cc b/sql/item.cc index 0254a0ae61c..71f20a966f9 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -5392,7 +5392,7 @@ void Item_result_field::cleanup() ** Instantiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class List<Item>; template class List_iterator<Item>; template class List_iterator_fast<Item>; diff --git a/sql/item_buff.cc b/sql/item_buff.cc index a4c42071bb0..7e7bbe51657 100644 --- a/sql/item_buff.cc +++ b/sql/item_buff.cc @@ -146,7 +146,7 @@ bool Cached_item_decimal::cmp() ** Instansiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class List<Cached_item>; template class List_iterator<Cached_item>; #endif diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 35b631abd67..0e319410826 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -7049,7 +7049,7 @@ static void create_pid_file() Instantiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION /* Used templates */ template class I_List<THD>; template class I_List_iterator<THD>; diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 0a9f117a97b..207194b2fca 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -8923,7 +8923,7 @@ void QUICK_GROUP_MIN_MAX_SELECT::dbug_dump(int indent, bool verbose) ** Instantiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class List<QUICK_RANGE>; template class List_iterator<QUICK_RANGE>; #endif diff --git a/sql/set_var.cc b/sql/set_var.cc index b3219e07587..a06c5b9b858 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -3406,7 +3406,7 @@ bool process_key_caches(int (* func) (const char *name, KEY_CACHE *)) 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>; diff --git a/sql/slave.cc b/sql/slave.cc index 46b028cc431..266a335229d 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -4617,7 +4617,7 @@ end: } -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class I_List_iterator<i_string>; template class I_List_iterator<i_string_pair>; #endif diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 32c769537a1..13f6191a99f 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -5325,7 +5325,7 @@ bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, 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>; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 299011d8821..8b3fb87e662 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -49,7 +49,7 @@ char internal_table_name[2]= "*"; ** Instansiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION /* Used templates */ template class List<Key>; template class List_iterator<Key>; diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index c3c51afc03b..94a680428ad 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2375,11 +2375,11 @@ void select_create::abort() 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 */ diff --git a/sql/sql_map.cc b/sql/sql_map.cc index 9346f3df305..726bd48ab19 100644 --- a/sql/sql_map.cc +++ b/sql/sql_map.cc @@ -138,7 +138,7 @@ void unmap_file(mapped_files *map) ** Instansiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION /* Used templates */ template class I_List<mapped_files>; template class I_List_iterator<mapped_files>; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 775db828c51..084cd8e17c4 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -6273,7 +6273,7 @@ public: 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>; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index aaa34dc4cb7..9503bc9ec89 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1102,7 +1102,7 @@ public: char *query; }; -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class I_List<thread_info>; #endif @@ -3879,7 +3879,7 @@ ST_SCHEMA_TABLE schema_tables[]= }; -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class List_iterator_fast<char>; template class List<char>; #endif diff --git a/sql/table.cc b/sql/table.cc index ea5f0e8a7d0..6b0f117b9e7 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -2239,7 +2239,7 @@ const char *Field_iterator_view::name() ** Instansiate templates *****************************************************************************/ -#ifdef __GNUC__ +#ifdef EXPLICIT_TEMPLATE_INSTANTIATION template class List<String>; template class List_iterator<String>; #endif |