extra/mariadb: fix

This commit is contained in:
Kevin Mihelich 2021-11-12 23:47:36 +00:00
parent 10fcc5fd2b
commit fce071bbdb
2 changed files with 1 additions and 77 deletions

View file

@ -3,7 +3,7 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - disable mroonga storage engine (doesn't build on ARM)
# - patches from debian and atomic fixes for v5/v6
# - atomic fix for v5/v6
pkgbase=mariadb
pkgname=('mariadb-libs' 'mariadb-clients' 'mariadb' 'mytop')
@ -39,7 +39,6 @@ prepare() {
patch -Np1 < ../0001-arch-specific.patch
if [[ $CARCH == arm || $CARCH == armv6h ]]; then
patch -p1 -i ../c11_atomics.patch
echo "target_link_libraries(rocksdblib atomic)" >> storage/rocksdb/build_rocksdb.cmake
fi
}

View file

@ -1,75 +0,0 @@
Forwarded: https://github.com/MariaDB/server/pull/1716
Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
Date: Fri Dec 21 19:14:04 2018 +0200
Link with libatomic to enable C11 atomics support
Some architectures (mips) require libatomic to support proper
atomic operations. Check first if support is available without
linking, otherwise use the library.
Original commit:
Detect whether libatomic is needed rather than hard-coding for mips
Fixes FTBFS on powerpc, since it needs libatomic too for C11 atomics,
and possibly m68k.
Contributors:
James Cowgill <jcowgill@debian.org>
Jessica Clarke <jrtc27@debian.org>
--- a/configure.cmake
+++ b/configure.cmake
@@ -865,7 +865,25 @@ int main()
long long int *ptr= &var;
return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}"
-HAVE_GCC_C11_ATOMICS)
+HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
+IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
+ SET(HAVE_GCC_C11_ATOMICS True)
+ELSE()
+ SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+ CHECK_CXX_SOURCE_COMPILES("
+ int main()
+ {
+ long long int var= 1;
+ long long int *ptr= &var;
+ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
+ }"
+ HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ SET(HAVE_GCC_C11_ATOMICS True)
+ ENDIF()
+ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
+ENDIF()
IF(WITH_VALGRIND)
SET(HAVE_valgrind 1)
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
@@ -168,6 +168,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings
${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
DTRACE_INSTRUMENT(mysys)
+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ TARGET_LINK_LIBRARIES(mysys atomic)
+ENDIF()
+
IF(HAVE_BFD_H)
TARGET_LINK_LIBRARIES(mysys bfd)
ENDIF(HAVE_BFD_H)
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -318,6 +318,10 @@ IF(WITH_MYSQLD_LDFLAGS)
"${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}")
ENDIF()
+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
+ TARGET_LINK_LIBRARIES(sql atomic)
+ENDIF()
+
FIND_PACKAGE(BISON 2.0)