Commit a9ccff55 authored by unknown's avatar unknown

Merge bk-internal:/home/bk/mysql-5.0

into serg.mylan:/usr/home/serg/Abk/mysql-5.0

parents 29f3b76f 2906e27a
...@@ -3940,9 +3940,10 @@ Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, ...@@ -3940,9 +3940,10 @@ Integer CRT(const Integer &xp, const Integer &p, const Integer &xq,
} }
#ifdef __GNUC__ #ifdef __GNUC__
template unsigned int DivideThreeWordsByTwo<unsigned int, DWord>(unsigned int*, unsigned int, unsigned int, DWord*); #ifndef TAOCRYPT_NATIVE_DWORD_AVAILABLE
template unsigned int DivideThreeWordsByTwo<unsigned int, Word>(unsigned int*, unsigned int, unsigned int, Word*); template hword DivideThreeWordsByTwo<hword, Word>(hword*, hword, hword, Word*);
template unsigned long long DivideThreeWordsByTwo<unsigned long long, DWord>(unsigned long long*, unsigned long long, unsigned long long, DWord*); #endif
template word DivideThreeWordsByTwo<word, DWord>(word*, word, word, DWord*);
#endif #endif
} // namespace } // namespace
......
...@@ -9,29 +9,27 @@ namespace TaoCrypt { ...@@ -9,29 +9,27 @@ namespace TaoCrypt {
#if defined(SSE2_INTRINSICS_AVAILABLE) #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); 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 #endif
template AllocatorWithCleanup<unsigned char>::pointer StdReallocate<unsigned char, AllocatorWithCleanup<unsigned char> >(AllocatorWithCleanup<unsigned char>&, unsigned char*, AllocatorWithCleanup<unsigned char>::size_type, AllocatorWithCleanup<unsigned char>::size_type, bool);
template AllocatorWithCleanup<unsigned int>::pointer StdReallocate<unsigned int, AllocatorWithCleanup<unsigned int> >(AllocatorWithCleanup<unsigned int>&, unsigned int*, AllocatorWithCleanup<unsigned int>::size_type, AllocatorWithCleanup<unsigned int>::size_type, bool);
template AllocatorWithCleanup<unsigned long long>::pointer StdReallocate<unsigned long long, AllocatorWithCleanup<unsigned long long> >(AllocatorWithCleanup<unsigned long long>&, unsigned long long*, AllocatorWithCleanup<unsigned long long>::size_type, AllocatorWithCleanup<unsigned long long>::size_type, bool);
template class RSA_Decryptor<RSA_BlockType2>; template class RSA_Decryptor<RSA_BlockType2>;
template class RSA_Encryptor<RSA_BlockType1>; template class RSA_Encryptor<RSA_BlockType1>;
template class RSA_Encryptor<RSA_BlockType2>; template class RSA_Encryptor<RSA_BlockType2>;
template void tcDelete<HASH>(HASH*);
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*);
} }
namespace mySTL { namespace mySTL {
template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> const&); 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 vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned long, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned long, vector<TaoCrypt::Integer> const&);
template void destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*, vector<TaoCrypt::Integer>*); 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_copy<TaoCrypt::Integer*, TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer const&); template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, size_t, TaoCrypt::Integer>(TaoCrypt::Integer*, size_t, TaoCrypt::Integer const&);
template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned long, TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned long, TaoCrypt::Integer const&);
template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*); template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
} }
namespace TaoCrypt {
template void tcDelete<HASH>(HASH*);
template void tcArrayDelete<unsigned>(unsigned*);
template void tcArrayDelete<unsigned long long>(unsigned long long*);
template void tcArrayDelete<unsigned char>(unsigned char*);
template void tcArrayDelete<char>(char*);
}
#endif #endif
...@@ -86,29 +86,24 @@ INC_LIB= $(top_builddir)/regex/libregex.a \ ...@@ -86,29 +86,24 @@ INC_LIB= $(top_builddir)/regex/libregex.a \
# To make it easy for the end user to use the embedded library we # To make it easy for the end user to use the embedded library we
# generate a total libmysqld.a from all library files, # generate a total libmysqld.a from all library files,
# note - InnoDB libraries have circular dependencies, so in INC_LIB
# few libraries are present two times. Metrowerks linker doesn't like
# it at all. Traditional ar has no problems with it, but still there's no
# need to add the same file twice to the library, so 'sort -u' save us
# some time and spares unnecessary work.
libmysqld.a: libmysqld_int.a $(INC_LIB) libmysqld.a: libmysqld_int.a $(INC_LIB)
if DARWIN_MWCC if DARWIN_MWCC
mwld -lib -o $@ libmysqld_int.a `ls -1 $(INC_LIB) | sort -u` mwld -lib -o $@ libmysqld_int.a `echo $(INC_LIB) | sort -u`
else else
if test "$(host_os)" = "netware" ; \ if test "$(host_os)" = "netware" ; \
then \ then \
$(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \ $(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
else \ else \
if test ! -d tmp ; then mkdir tmp ; fi ; \ for arc in ./libmysqld_int.a $(INC_LIB); do \
rm -f $@ libmysqld_int2.a tmp/*.o tmp/*.a ; \ arpath=`echo $$arc|sed 's|[^/]*$$||'`; \
cp $(INC_LIB) tmp ; \ $(AR) t $$arc|sed "s|^|$$arpath|"; \
cp libmysqld_int.a libmysqld_int2.a ; \ done | sort -u | xargs $(AR) cq libmysqld.a ; \
cd tmp ; \
for file in *.a ; do \
bfile=`basename $$file .a` ; \
$(AR) x $$file; \
for obj in *.o ; do mv $$obj $${bfile}_$$obj ; done ; \
$(AR) q ../libmysqld_int2.a *.o ; \
rm -f *.o ; \
done ; \
cd .. ; \
mv libmysqld_int2.a libmysqld.a ; \
rm -f tmp/* ; \
$(RANLIB) libmysqld.a ; \ $(RANLIB) libmysqld.a ; \
fi fi
endif endif
......
...@@ -44,7 +44,7 @@ int my_access(const char *path, int amode) ...@@ -44,7 +44,7 @@ int my_access(const char *path, int amode)
result= GetFileAttributesEx(path, GetFileExInfoStandard, &fileinfo); result= GetFileAttributesEx(path, GetFileExInfoStandard, &fileinfo);
if (! result || if (! result ||
(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & F_OK)) (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & W_OK))
{ {
my_errno= errno= EACCES; my_errno= errno= EACCES;
return -1; return -1;
......
...@@ -695,8 +695,8 @@ String *Item_int_func::val_str(String *str) ...@@ -695,8 +695,8 @@ String *Item_int_func::val_str(String *str)
/* /*
Check arguments here to determine result's type for function with two Check arguments here to determine result's type for a numeric
arguments. function of two arguments.
SYNOPSIS SYNOPSIS
Item_num_op::find_num_type() Item_num_op::find_num_type()
...@@ -722,8 +722,9 @@ void Item_num_op::find_num_type(void) ...@@ -722,8 +722,9 @@ void Item_num_op::find_num_type(void)
hybrid_type= DECIMAL_RESULT; hybrid_type= DECIMAL_RESULT;
result_precision(); result_precision();
} }
else if (r0 == INT_RESULT && r1 == INT_RESULT) else
{ {
DBUG_ASSERT(r0 == INT_RESULT && r1 == INT_RESULT);
decimals= 0; decimals= 0;
hybrid_type=INT_RESULT; hybrid_type=INT_RESULT;
result_precision(); result_precision();
...@@ -738,7 +739,9 @@ void Item_num_op::find_num_type(void) ...@@ -738,7 +739,9 @@ void Item_num_op::find_num_type(void)
/* /*
Set result type of function if it (type) is depends only on first argument Set result type for a numeric function of one argument
(can be also used by a numeric function of many arguments, if the result
type depends only on the first argument)
SYNOPSIS SYNOPSIS
Item_func_num1::find_num_type() Item_func_num1::find_num_type()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment