summaryrefslogtreecommitdiff
path: root/scripts/CMakeLists.txt
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-06-08 21:06:56 +0200
committerSergei Golubchik <serg@mariadb.org>2015-06-16 23:58:21 +0200
commit66fd45afce1ba5e1032c32cc891c09d64fa38d9e (patch)
treeb938649a3769b4163cd813af72ebb74ab68dff6a /scripts/CMakeLists.txt
parent7bfda275a1b9a4759fcb3dbef4736b1094c892d2 (diff)
downloadmariadb-git-66fd45afce1ba5e1032c32cc891c09d64fa38d9e.tar.gz
MDEV-7398 mysqld segfaults on FreeBSD 10.1 i386 when built with clang 3.4
in cmake tests let's treat clang like gcc (same options, same builtins) in many cases. * don't check the compiler when * testing for -fvisibility=hidden support * testing for HAVE_ABI_CXA_DEMANGLE * testing for HAVE_GCC_ATOMIC_BUILTINS * when removing options with string(replace) * when running ${CC} --version (ignore the error instead) * run ABI checks for clang * use "canonical" gcc flags for clang * fix groonga too Also: * add cmake detection for gcc __atomic_* builtins. they might be supported (__ATOMIC_SEQ_CST is defined), but not for all operand sizes. In particular, 64-bit atomic load is problematic on i386 * cache check results for Windows * remove the test for HAVE_CXXABI_H (HAVE_ABI_CXA_DEMANGLE is suffifient)
Diffstat (limited to 'scripts/CMakeLists.txt')
-rw-r--r--scripts/CMakeLists.txt26
1 files changed, 10 insertions, 16 deletions
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index eadd6ae5af0..79d87fcf6be 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -147,22 +147,16 @@ SET(CONFIGURE_LINE "Built using CMake")
# Also required for mysqlbug, autoconf only supports --version so for now we
# just explicitly require GNU
-IF(CMAKE_COMPILER_IS_GNUCC)
- EXECUTE_PROCESS(
- COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} --version
- COMMAND sed 1q
- OUTPUT_VARIABLE CC_VERSION)
-ELSE()
- SET(CC_VERSION "")
-ENDIF()
-IF(CMAKE_COMPILER_IS_GNUCXX)
- EXECUTE_PROCESS(
- COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} --version
- COMMAND sed 1q
- OUTPUT_VARIABLE CXX_VERSION)
-ELSE()
- SET(CXX_VERSION "")
-ENDIF()
+EXECUTE_PROCESS(
+ COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} --version
+ COMMAND sed 1q
+ ERROR_QUIET
+ OUTPUT_VARIABLE CC_VERSION)
+EXECUTE_PROCESS(
+ COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} --version
+ COMMAND sed 1q
+ ERROR_QUIET
+ OUTPUT_VARIABLE CXX_VERSION)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqlbug.sh
${CMAKE_CURRENT_BINARY_DIR}/mysqlbug ESCAPE_QUOTES @ONLY)