mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
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)
This commit is contained in:
@@ -31,8 +31,8 @@
|
||||
#define make_atomic_store_body(S) *a= v
|
||||
#define MY_ATOMIC_MODE "gcc-builtins-up"
|
||||
|
||||
#elif defined(__ATOMIC_SEQ_CST)
|
||||
#define MY_ATOMIC_MODE "gcc-builtins-smp"
|
||||
#elif defined(HAVE_GCC_C11_ATOMICS)
|
||||
#define MY_ATOMIC_MODE "gcc-atomics-smp"
|
||||
#define make_atomic_load_body(S) \
|
||||
ret= __atomic_load_n(a, __ATOMIC_SEQ_CST)
|
||||
#define make_atomic_store_body(S) \
|
||||
|
Reference in New Issue
Block a user