summaryrefslogtreecommitdiff
path: root/configure.cmake
diff options
context:
space:
mode:
authorTor Didriksen <tor.didriksen@oracle.com>2010-12-21 13:00:26 +0100
committerTor Didriksen <tor.didriksen@oracle.com>2010-12-21 13:00:26 +0100
commit029a5df87044dd392d3c393a2ba1c882722c94e0 (patch)
treec89697cfd2105436f135c4a0d9477da852d82981 /configure.cmake
parent3dcdd6957ad90055e16a3a861520301e421d307b (diff)
downloadmariadb-git-029a5df87044dd392d3c393a2ba1c882722c94e0.tar.gz
Bug #58699 cannot build with gcc dbg on solaris
cmake/os/SunOS.cmake: Remove TARGET_OS_SOLARIS config.h.cmake: Remove TARGET_OS_SOLARIS Add PTHREAD_ONCE_INITIALIZER configure.cmake: Add function for testing whether we need { PTHREAD_ONCE_INIT } rather than PTHREAD_ONCE_INIT include/my_pthread.h: Use PTHREAD_ONCE_INITIALIZER if set by cmake. include/mysql/psi/mysql_file.h: Include my_global.h first, to get correct platform definitions. mysys/ptr_cmp.c: Hide the unused static functions in #ifdef's on solaris. Use __sun (defined by both gcc and SunPro cc) rather than TARGET_OS_SOLARIS sql/my_decimal.cc: Include my_global.h first, to get correct platform definitions. sql/mysqld.cc: Fix signed/unsigned comparison warning. sql/sql_audit.h: Include my_global.h first, to get correct platform definitions. sql/sql_plugin.h: Include my_global.h first, to get correct platform definitions. sql/sql_show.cc: Fix: warning: cast from pointer to integer of different size sql/sys_vars.h: Use reinterpret_cast rather than c-style cast. storage/perfschema/pfs_instr.cc: Include my_global.h first, to get correct platform definitions.
Diffstat (limited to 'configure.cmake')
-rw-r--r--configure.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/configure.cmake b/configure.cmake
index cba9e79ff23..954b60a45f6 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -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 <pthread.h>
+ 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 <pthread.h>
+ 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
#