mariadb: Update to version 10.6.4
[feed/packages.git] / utils / mariadb / patches / 130-c11_atomics.patch
1 Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
2 Date: Fri Dec 21 19:14:04 2018 +0200
3
4 Link with libatomic to enable C11 atomics support
5
6 Some architectures (mips) require libatomic to support proper
7 atomic operations. Check first if support is available without
8 linking, otherwise use the library.
9
10 --- a/configure.cmake
11 +++ b/configure.cmake
12 @@ -866,7 +866,25 @@ int main()
13 long long int *ptr= &var;
14 return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
15 }"
16 -HAVE_GCC_C11_ATOMICS)
17 +HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
18 +IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
19 + SET(HAVE_GCC_C11_ATOMICS True)
20 +ELSE()
21 + SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
22 + LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
23 + CHECK_CXX_SOURCE_COMPILES("
24 + int main()
25 + {
26 + long long int var= 1;
27 + long long int *ptr= &var;
28 + return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
29 + }"
30 + HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
31 + IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
32 + SET(HAVE_GCC_C11_ATOMICS True)
33 + ENDIF()
34 + SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
35 +ENDIF()
36
37 IF(WITH_VALGRIND)
38 SET(HAVE_valgrind 1)
39 --- a/mysys/CMakeLists.txt
40 +++ b/mysys/CMakeLists.txt
41 @@ -168,6 +168,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings
42 ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
43 DTRACE_INSTRUMENT(mysys)
44
45 +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
46 + TARGET_LINK_LIBRARIES(mysys atomic)
47 +ENDIF()
48 +
49 IF(HAVE_BFD_H)
50 TARGET_LINK_LIBRARIES(mysys bfd)
51 ENDIF(HAVE_BFD_H)
52 --- a/sql/CMakeLists.txt
53 +++ b/sql/CMakeLists.txt
54 @@ -324,6 +324,10 @@ IF(WITH_MYSQLD_LDFLAGS)
55 "${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}")
56 ENDIF()
57
58 +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
59 + TARGET_LINK_LIBRARIES(sql atomic)
60 +ENDIF()
61 +
62
63 FIND_PACKAGE(BISON 2.0)
64