From: Tor Didriksen Date: December 21 2010 3:36pm Subject: bzr push into mysql-trunk-bugfixing branch (tor.didriksen:3463 to 3464) List-Archive: http://lists.mysql.com/commits/127447 Message-Id: <20101221153645.CE8173731@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3464 Tor Didriksen 2010-12-21 [merge] automerge 5.5-bugteam => trunk-bugfixing modified: cmake/os/SunOS.cmake config.h.cmake configure.cmake include/my_pthread.h include/mysql/psi/mysql_file.h mysys/ptr_cmp.c sql/my_decimal.cc sql/mysqld.cc sql/sql_audit.h sql/sql_plugin.h sql/sql_show.cc sql/sys_vars.h storage/perfschema/pfs_instr.cc 3463 Sergey Glukhov 2010-12-21 [merge] automerge === modified file 'cmake/os/SunOS.cmake' --- a/cmake/os/SunOS.cmake 2010-02-25 09:57:23 +0000 +++ b/cmake/os/SunOS.cmake 2010-12-21 12:00:26 +0000 @@ -17,7 +17,6 @@ INCLUDE(CheckSymbolExists) INCLUDE(CheckCSourceRuns) INCLUDE(CheckCSourceCompiles) -SET(TARGET_OS_SOLARIS 1) # Enable 64 bit file offsets SET(_FILE_OFFSET_BITS 64) === modified file 'config.h.cmake' --- a/config.h.cmake 2010-12-05 19:19:41 +0000 +++ b/config.h.cmake 2010-12-21 15:27:40 +0000 @@ -226,6 +226,7 @@ #cmakedefine HAVE_PTHREAD_THREADMASK 1 #cmakedefine HAVE_PTHREAD_YIELD_NP 1 #cmakedefine HAVE_PTHREAD_YIELD_ZERO_ARG 1 +#cmakedefine PTHREAD_ONCE_INITIALIZER @PTHREAD_ONCE_INITIALIZER@ #cmakedefine HAVE_PUTENV 1 #cmakedefine HAVE_RE_COMP 1 #cmakedefine HAVE_REGCOMP 1 @@ -406,7 +407,6 @@ #cmakedefine TARGET_OS_LINUX 1 -#cmakedefine TARGET_OS_SOLARIS 1 #cmakedefine HAVE_WCTYPE_H 1 #cmakedefine HAVE_WCHAR_H 1 === modified file 'configure.cmake' --- a/configure.cmake 2010-10-19 17:11:24 +0000 +++ b/configure.cmake 2010-12-21 15:27:40 +0000 @@ -269,6 +269,49 @@ ENDIF() # FIND_PACKAGE (Threads) +FUNCTION(MY_CHECK_PTHREAD_ONCE_INIT) + CHECK_C_COMPILER_FLAG("-Werror" HAVE_WERROR_FLAG) + IF(NOT HAVE_WERROR_FLAG) + RETURN() + ENDIF() + SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror") + CHECK_C_SOURCE_COMPILES(" + #include + void foo(void) {} + int main() + { + pthread_once_t once_control = PTHREAD_ONCE_INIT; + pthread_once(&once_control, foo); + return 0; + }" + HAVE_PTHREAD_ONCE_INIT + ) + # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6611808 + IF(NOT HAVE_PTHREAD_ONCE_INIT) + CHECK_C_SOURCE_COMPILES(" + #include + void foo(void) {} + int main() + { + pthread_once_t once_control = { PTHREAD_ONCE_INIT }; + pthread_once(&once_control, foo); + return 0; + }" + HAVE_ARRAY_PTHREAD_ONCE_INIT + ) + ENDIF() + IF(HAVE_PTHREAD_ONCE_INIT) + SET(PTHREAD_ONCE_INITIALIZER "PTHREAD_ONCE_INIT" PARENT_SCOPE) + ENDIF() + IF(HAVE_ARRAY_PTHREAD_ONCE_INIT) + SET(PTHREAD_ONCE_INITIALIZER "{ PTHREAD_ONCE_INIT }" PARENT_SCOPE) + ENDIF() +ENDFUNCTION() + +IF(CMAKE_USE_PTHREADS_INIT) + MY_CHECK_PTHREAD_ONCE_INIT() +ENDIF() + # # Tests for functions # === modified file 'include/my_pthread.h' --- a/include/my_pthread.h 2010-10-20 21:34:37 +0000 +++ b/include/my_pthread.h 2010-12-21 15:27:40 +0000 @@ -214,7 +214,11 @@ int pthread_cancel(pthread_t thread); typedef void *(* pthread_handler)(void *); #define my_pthread_once_t pthread_once_t +#if defined(PTHREAD_ONCE_INITIALIZER) +#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INITIALIZER +#else #define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT +#endif #define my_pthread_once(C,F) pthread_once(C,F) /* Test first for RTS or FSU threads */ === modified file 'include/mysql/psi/mysql_file.h' --- a/include/mysql/psi/mysql_file.h 2010-07-14 16:33:33 +0000 +++ b/include/mysql/psi/mysql_file.h 2010-12-21 15:27:40 +0000 @@ -16,6 +16,8 @@ #ifndef MYSQL_FILE_H #define MYSQL_FILE_H +#include + /* For strlen() */ #include /* For MY_STAT */ === modified file 'mysys/ptr_cmp.c' --- a/mysys/ptr_cmp.c 2009-11-20 19:01:43 +0000 +++ b/mysys/ptr_cmp.c 2010-12-21 12:00:26 +0000 @@ -22,7 +22,7 @@ #include "mysys_priv.h" #include -#ifdef TARGET_OS_SOLARIS +#ifdef __sun /* * On Solaris, memcmp() is normally faster than the unrolled ptr_compare_N * functions, as memcmp() is usually a platform-specific implementation @@ -39,22 +39,25 @@ static int native_compare(size_t *length return memcmp(*a, *b, *length); } -#else /* TARGET_OS_SOLARIS */ +#else /* __sun */ static int ptr_compare(size_t *compare_length, uchar **a, uchar **b); static int ptr_compare_0(size_t *compare_length, uchar **a, uchar **b); static int ptr_compare_1(size_t *compare_length, uchar **a, uchar **b); static int ptr_compare_2(size_t *compare_length, uchar **a, uchar **b); static int ptr_compare_3(size_t *compare_length, uchar **a, uchar **b); -#endif /* TARGET_OS_SOLARIS */ +#endif /* __sun */ /* Get a pointer to a optimal byte-compare function for a given size */ -qsort2_cmp get_ptr_compare (size_t size) +#ifdef __sun +qsort2_cmp get_ptr_compare (size_t size __attribute__((unused))) { -#ifdef TARGET_OS_SOLARIS return (qsort2_cmp) native_compare; +} #else +qsort2_cmp get_ptr_compare (size_t size) +{ if (size < 4) return (qsort2_cmp) ptr_compare; switch (size & 3) { @@ -64,8 +67,8 @@ qsort2_cmp get_ptr_compare (size_t size) case 3: return (qsort2_cmp) ptr_compare_3; } return 0; /* Impossible */ -#endif /* TARGET_OS_SOLARIS */ } +#endif /* __sun */ /* @@ -75,6 +78,8 @@ qsort2_cmp get_ptr_compare (size_t size) #define cmp(N) if (first[N] != last[N]) return (int) first[N] - (int) last[N] +#ifndef __sun + static int ptr_compare(size_t *compare_length, uchar **a, uchar **b) { reg3 int length= *compare_length; @@ -177,6 +182,8 @@ static int ptr_compare_3(size_t *compare return (0); } +#endif /* !__sun */ + void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos) { switch (pack_length) { === modified file 'sql/my_decimal.cc' --- a/sql/my_decimal.cc 2010-12-14 16:29:15 +0000 +++ b/sql/my_decimal.cc 2010-12-21 15:27:40 +0000 @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ +#include #include "sql_priv.h" #include === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2010-12-20 13:26:51 +0000 +++ b/sql/mysqld.cc 2010-12-21 15:27:40 +0000 @@ -3284,8 +3284,8 @@ static int init_common_variables() size_t *pagesize = (size_t *) malloc(sizeof(size_t) * nelem); if (pagesize != NULL && getpagesizes(pagesize, nelem) > 0) { - size_t i, max_page_size= 0; - for (i= 0; i < nelem; i++) + size_t max_page_size= 0; + for (int i= 0; i < nelem; i++) { if (pagesize[i] > max_page_size && pagesize[i] <= max_desired_page_size) === modified file 'sql/sql_audit.h' --- a/sql/sql_audit.h 2010-12-14 14:38:42 +0000 +++ b/sql/sql_audit.h 2010-12-21 15:27:40 +0000 @@ -17,6 +17,8 @@ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ +#include + #include #include "sql_class.h" === modified file 'sql/sql_plugin.h' --- a/sql/sql_plugin.h 2010-12-02 05:40:58 +0000 +++ b/sql/sql_plugin.h 2010-12-21 15:27:40 +0000 @@ -16,6 +16,8 @@ #ifndef _sql_plugin_h #define _sql_plugin_h +#include + /* the following #define adds server-only members to enum_mysql_show_type, that is defined in plugin.h === modified file 'sql/sql_show.cc' --- a/sql/sql_show.cc 2010-12-17 11:28:59 +0000 +++ b/sql/sql_show.cc 2010-12-21 15:27:40 +0000 @@ -2259,7 +2259,7 @@ static bool show_status_array(THD *thd, end= int10_to_str(*(long*) value, buff, 10); break; case SHOW_LONGLONG_STATUS: - value= ((char *) status_var + (ulonglong) value); + value= ((char *) status_var + (ulong) value); /* fall through */ case SHOW_LONGLONG: end= longlong10_to_str(*(longlong*) value, buff, 10); === modified file 'sql/sys_vars.h' --- a/sql/sys_vars.h 2010-11-16 12:14:06 +0000 +++ b/sql/sys_vars.h 2010-12-21 15:27:40 +0000 @@ -1191,7 +1191,8 @@ public: void global_save_default(THD *thd, set_var *var) { LEX_STRING pname; - pname.str= *(char**)option.def_value; + char **default_value= reinterpret_cast(option.def_value); + pname.str= *default_value; pname.length= strlen(pname.str); plugin_ref plugin; @@ -1556,7 +1557,10 @@ public: void session_save_default(THD *thd, set_var *var) { var->save_result.ptr= global_var(void*); } void global_save_default(THD *thd, set_var *var) - { var->save_result.ptr= *(void**)option.def_value; } + { + void **default_value= reinterpret_cast(option.def_value); + var->save_result.ptr= *default_value; + } bool check_update_type(Item_result type) { return type != INT_RESULT && type != STRING_RESULT; } uchar *session_value_ptr(THD *thd, LEX_STRING *base) === modified file 'storage/perfschema/pfs_instr.cc' --- a/storage/perfschema/pfs_instr.cc 2010-12-02 16:38:55 +0000 +++ b/storage/perfschema/pfs_instr.cc 2010-12-21 15:27:40 +0000 @@ -18,9 +18,9 @@ Performance schema instruments (implementation). */ +#include #include -#include "my_global.h" #include "my_sys.h" #include "pfs.h" #include "pfs_stat.h" No bundle (reason: useless for push emails).