From: rmccask <rmccask@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] mariadb: update to 10.1.45.
Date: Thu, 28 May 2020 01:58:02 +0200 [thread overview]
Message-ID: <20200527235802.SMR8PsaPNIuOyuYEqeqXBgbw85RdjZAsQBBLSzfj8G8@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-22348@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 325 bytes --]
There is an updated pull request by rmccask against master on the void-packages repository
https://github.com/rmccask/void-packages mariadb-10.1.45
https://github.com/void-linux/void-packages/pull/22348
mariadb: update to 10.1.45.
A patch file from https://github.com/void-linux/void-packages/pull/22348.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mariadb-10.1.45-22348.patch --]
[-- Type: text/x-diff, Size: 35425 bytes --]
From fba749d93f38d85f919c55a78e72b378ece1dad1 Mon Sep 17 00:00:00 2001
From: Randy McCaskill <randy@mccaskill.us>
Date: Wed, 27 May 2020 02:22:24 -0400
Subject: [PATCH] mariadb: update to 10.1.45.
[ci skip]
---
srcpkgs/mariadb/patches/c11_atomics.patch | 128 ++++++++
.../mariadb/patches/fix-pthread-detach.patch | 34 --
.../mariadb/patches/force-c11-atomics.patch | 294 ------------------
srcpkgs/mariadb/patches/libatomic.patch | 103 ------
.../patches/mips-connect-unaligned.patch | 257 +++++++++++++++
.../patches/mips-innobase-atomic.patch | 20 ++
srcpkgs/mariadb/patches/mips-machine.patch | 23 ++
srcpkgs/mariadb/patches/musl-ppc.patch | 11 +-
srcpkgs/mariadb/template | 6 +-
9 files changed, 436 insertions(+), 440 deletions(-)
create mode 100644 srcpkgs/mariadb/patches/c11_atomics.patch
delete mode 100644 srcpkgs/mariadb/patches/fix-pthread-detach.patch
delete mode 100644 srcpkgs/mariadb/patches/force-c11-atomics.patch
delete mode 100644 srcpkgs/mariadb/patches/libatomic.patch
create mode 100644 srcpkgs/mariadb/patches/mips-connect-unaligned.patch
create mode 100644 srcpkgs/mariadb/patches/mips-innobase-atomic.patch
create mode 100644 srcpkgs/mariadb/patches/mips-machine.patch
diff --git a/srcpkgs/mariadb/patches/c11_atomics.patch b/srcpkgs/mariadb/patches/c11_atomics.patch
new file mode 100644
index 00000000000..da84c12a0e1
--- /dev/null
+++ b/srcpkgs/mariadb/patches/c11_atomics.patch
@@ -0,0 +1,128 @@
+From: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
+Date: Thu, 10 Aug 2017 20:40:29 +0200
+Subject: c11_atomics
+
+---
+ configure.cmake | 23 +++++++++++++++++++++--
+ include/atomic/gcc_builtins.h | 15 +++++++++++++++
+ include/atomic/nolock.h | 4 ++--
+ mysys/CMakeLists.txt | 4 ++++
+ sql/CMakeLists.txt | 4 ++++
+ 5 files changed, 46 insertions(+), 4 deletions(-)
+
+--- configure.cmake
++++ configure.cmake
+@@ -128,7 +128,7 @@ IF(UNIX)
+ ENDIF()
+ FIND_PACKAGE(Threads)
+
+- SET(CMAKE_REQUIRED_LIBRARIES
++ LIST(APPEND CMAKE_REQUIRED_LIBRARIES
+ ${LIBM} ${LIBNSL} ${LIBBIND} ${LIBCRYPT} ${LIBSOCKET} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${LIBEXECINFO})
+ # Need explicit pthread for gcc -fsanitize=address
+ IF(CMAKE_USE_PTHREADS_INIT AND CMAKE_C_FLAGS MATCHES "-fsanitize=")
+@@ -1038,7 +1038,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
+ 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)
++ ELSE()
++ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
++ ENDIF()
++ ENDIF()
+ ELSE()
+ MESSAGE(FATAL_ERROR "${WITH_ATOMIC_OPS} is not a valid value for WITH_ATOMIC_OPS!")
+ ENDIF()
+--- include/atomic/gcc_builtins.h
++++ include/atomic/gcc_builtins.h
+@@ -16,6 +16,7 @@
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
++#if defined (HAVE_GCC_ATOMIC_BUILTINS)
+ #define make_atomic_add_body(S) \
+ v= __sync_fetch_and_add(a, v);
+ #define make_atomic_fas_body(S) \
+@@ -26,6 +27,20 @@
+ sav= __sync_val_compare_and_swap(a, cmp_val, set);\
+ if (!(ret= (sav == cmp_val))) *cmp= sav
+
++#elif defined(HAVE_GCC_C11_ATOMICS)
++
++#define make_atomic_add_body(S) \
++ v= __atomic_fetch_add(a, v, __ATOMIC_SEQ_CST)
++#define make_atomic_fas_body(S) \
++ v= __atomic_exchange_n(a, v, __ATOMIC_SEQ_CST)
++#define make_atomic_cas_body(S) \
++ int ## S sav; \
++ ret= __atomic_compare_exchange_n(a, cmp, set, \
++ 0, \
++ __ATOMIC_SEQ_CST,\
++ __ATOMIC_SEQ_CST);
++#endif
++
+ #ifdef MY_ATOMIC_MODE_DUMMY
+ #define make_atomic_load_body(S) ret= *a
+ #define make_atomic_store_body(S) *a= v
+--- include/atomic/nolock.h
++++ include/atomic/nolock.h
+@@ -17,7 +17,7 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+ #if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__) \
+- || defined(HAVE_GCC_ATOMIC_BUILTINS) \
++ || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS) \
+ || defined(HAVE_SOLARIS_ATOMIC)
+
+ # ifdef MY_ATOMIC_MODE_DUMMY
+@@ -41,7 +41,7 @@
+ # elif __GNUC__
+ # if defined(HAVE_SOLARIS_ATOMIC)
+ # include "solaris.h"
+-# elif defined(HAVE_GCC_ATOMIC_BUILTINS)
++# elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
+ # include "gcc_builtins.h"
+ # elif defined(__i386__) || defined(__x86_64__)
+ # include "x86-gcc.h"
+--- mysys/CMakeLists.txt
++++ mysys/CMakeLists.txt
+@@ -79,6 +79,10 @@ IF(HAVE_BFD_H)
+ TARGET_LINK_LIBRARIES(mysys bfd)
+ ENDIF(HAVE_BFD_H)
+
++IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(mysys atomic)
++ENDIF()
++
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES(mysys IPHLPAPI)
+ ENDIF(WIN32)
+--- sql/CMakeLists.txt
++++ sql/CMakeLists.txt
+@@ -165,6 +165,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
+ ${SSL_LIBRARIES}
+ ${LIBSYSTEMD})
+
++IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(sql atomic)
++ENDIF()
++
+ IF(WIN32)
+ SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
+ TARGET_LINK_LIBRARIES(sql psapi)
diff --git a/srcpkgs/mariadb/patches/fix-pthread-detach.patch b/srcpkgs/mariadb/patches/fix-pthread-detach.patch
deleted file mode 100644
index a53c05b1320..00000000000
--- a/srcpkgs/mariadb/patches/fix-pthread-detach.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c45b4a774b6d1404a080a1c1759f780fa78f223b Mon Sep 17 00:00:00 2001
-From: Sergey Vojtovich <svoj@mariadb.org>
-Date: Fri, 21 Sep 2018 16:04:16 +0400
-Subject: [PATCH] MDEV-17200 - pthread_detach called for already detached
- threads
-
-pthread_detach_this_thread() was intended to be defined to something
-meaningful only on some ancient unixes, which don't have
-pthread_attr_setdetachstate() defined. Otherwise, on normal unixes,
-threads are created detached in the first place.
-
-This was broken in 0f01bf267680244ec488adaf65a42838756ed48e so that
-we started calling pthread_detach() for already detached threads.
-Intention was to detach aria checkpoint thread.
-
-However in 87007dc2f71634cc460271eb277ad851ec69c04b aria service threads
-were made joinable with appropriate handling, which makes breaking
-revision unneccessary.
-
-Revert remnants of 0f01bf267680244ec488adaf65a42838756ed48e, so that
-pthread_detach_this_thread() is meaningful only on some ancient unixes
-again.
-
---- include/my_pthread.h
-+++ include/my_pthread.h
-@@ -184,7 +184,7 @@ int pthread_cancel(pthread_t thread);
- #define pthread_key(T,V) pthread_key_t V
- #define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V))
- #define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V))
--#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); }
-+#define pthread_detach_this_thread()
- #define pthread_handler_t EXTERNC void *
- typedef void *(* pthread_handler)(void *);
-
diff --git a/srcpkgs/mariadb/patches/force-c11-atomics.patch b/srcpkgs/mariadb/patches/force-c11-atomics.patch
deleted file mode 100644
index 9546798bf97..00000000000
--- a/srcpkgs/mariadb/patches/force-c11-atomics.patch
+++ /dev/null
@@ -1,294 +0,0 @@
---- include/my_atomic.h
-+++ include/my_atomic.h
-@@ -104,217 +104,6 @@
- but can be added, if necessary.
- */
-
--#define intptr void *
--/**
-- Currently we don't support 8-bit and 16-bit operations.
-- It can be added later if needed.
--*/
--#undef MY_ATOMIC_HAS_8_16
--
--/*
-- * Attempt to do atomic ops without locks
-- */
--#include "atomic/nolock.h"
--
--#ifndef make_atomic_cas_body
--/* nolock.h was not able to generate even a CAS function, fall back */
--#error atomic ops for this platform are not implemented
--#endif
--
--/* define missing functions by using the already generated ones */
--#ifndef make_atomic_add_body
--#define make_atomic_add_body(S) \
-- int ## S tmp=*a; \
-- while (!my_atomic_cas ## S(a, &tmp, tmp+v)) ; \
-- v=tmp;
--#endif
--#ifndef make_atomic_fas_body
--#define make_atomic_fas_body(S) \
-- int ## S tmp=*a; \
-- while (!my_atomic_cas ## S(a, &tmp, v)) ; \
-- v=tmp;
--#endif
--#ifndef make_atomic_load_body
--#define make_atomic_load_body(S) \
-- ret= 0; /* avoid compiler warning */ \
-- (void)(my_atomic_cas ## S(a, &ret, ret));
--#endif
--#ifndef make_atomic_store_body
--#define make_atomic_store_body(S) \
-- (void)(my_atomic_fas ## S (a, v));
--#endif
--
--/*
-- transparent_union doesn't work in g++
-- Bug ?
--
-- Darwin's gcc doesn't want to put pointers in a transparent_union
-- when built with -arch ppc64. Complains:
-- warning: 'transparent_union' attribute ignored
--*/
--#if defined(__GNUC__) && !defined(__cplusplus) && \
-- ! (defined(__APPLE__) && (defined(_ARCH_PPC64) ||defined (_ARCH_PPC)))
--/*
-- we want to be able to use my_atomic_xxx functions with
-- both signed and unsigned integers. But gcc will issue a warning
-- "passing arg N of `my_atomic_XXX' as [un]signed due to prototype"
-- if the signedness of the argument doesn't match the prototype, or
-- "pointer targets in passing argument N of my_atomic_XXX differ in signedness"
-- if int* is used where uint* is expected (or vice versa).
-- Let's shut these warnings up
--*/
--#define make_transparent_unions(S) \
-- typedef union { \
-- int ## S i; \
-- uint ## S u; \
-- } U_ ## S __attribute__ ((transparent_union)); \
-- typedef union { \
-- int ## S volatile *i; \
-- uint ## S volatile *u; \
-- } Uv_ ## S __attribute__ ((transparent_union));
--#define uintptr intptr
--make_transparent_unions(8)
--make_transparent_unions(16)
--make_transparent_unions(32)
--make_transparent_unions(64)
--make_transparent_unions(ptr)
--#undef uintptr
--#undef make_transparent_unions
--#define a U_a.i
--#define cmp U_cmp.i
--#define v U_v.i
--#define set U_set.i
--#else
--#define U_8 int8
--#define U_16 int16
--#define U_32 int32
--#define U_64 int64
--#define U_ptr intptr
--#define Uv_8 int8
--#define Uv_16 int16
--#define Uv_32 int32
--#define Uv_64 int64
--#define Uv_ptr intptr
--#define U_a volatile *a
--#define U_cmp *cmp
--#define U_v v
--#define U_set set
--#endif /* __GCC__ transparent_union magic */
--
--#define make_atomic_cas(S) \
--static inline int my_atomic_cas ## S(Uv_ ## S U_a, \
-- Uv_ ## S U_cmp, U_ ## S U_set) \
--{ \
-- int8 ret; \
-- make_atomic_cas_body(S); \
-- return ret; \
--}
--
--#define make_atomic_add(S) \
--static inline int ## S my_atomic_add ## S( \
-- Uv_ ## S U_a, U_ ## S U_v) \
--{ \
-- make_atomic_add_body(S); \
-- return v; \
--}
--
--#define make_atomic_fas(S) \
--static inline int ## S my_atomic_fas ## S( \
-- Uv_ ## S U_a, U_ ## S U_v) \
--{ \
-- make_atomic_fas_body(S); \
-- return v; \
--}
--
--#define make_atomic_load(S) \
--static inline int ## S my_atomic_load ## S(Uv_ ## S U_a) \
--{ \
-- int ## S ret; \
-- make_atomic_load_body(S); \
-- return ret; \
--}
--
--#define make_atomic_store(S) \
--static inline void my_atomic_store ## S( \
-- Uv_ ## S U_a, U_ ## S U_v) \
--{ \
-- make_atomic_store_body(S); \
--}
--
--#ifdef MY_ATOMIC_HAS_8_16
--make_atomic_cas(8)
--make_atomic_cas(16)
--#endif
--make_atomic_cas(32)
--make_atomic_cas(64)
--make_atomic_cas(ptr)
--
--#ifdef MY_ATOMIC_HAS_8_16
--make_atomic_add(8)
--make_atomic_add(16)
--#endif
--make_atomic_add(32)
--make_atomic_add(64)
--
--#ifdef MY_ATOMIC_HAS_8_16
--make_atomic_load(8)
--make_atomic_load(16)
--#endif
--make_atomic_load(32)
--make_atomic_load(64)
--make_atomic_load(ptr)
--
--#ifdef MY_ATOMIC_HAS_8_16
--make_atomic_fas(8)
--make_atomic_fas(16)
--#endif
--make_atomic_fas(32)
--make_atomic_fas(64)
--make_atomic_fas(ptr)
--
--#ifdef MY_ATOMIC_HAS_8_16
--make_atomic_store(8)
--make_atomic_store(16)
--#endif
--make_atomic_store(32)
--make_atomic_store(64)
--make_atomic_store(ptr)
--
--#ifdef _atomic_h_cleanup_
--#include _atomic_h_cleanup_
--#undef _atomic_h_cleanup_
--#endif
--
--#undef U_8
--#undef U_16
--#undef U_32
--#undef U_64
--#undef U_ptr
--#undef Uv_8
--#undef Uv_16
--#undef Uv_32
--#undef Uv_64
--#undef Uv_ptr
--#undef a
--#undef cmp
--#undef v
--#undef set
--#undef U_a
--#undef U_cmp
--#undef U_v
--#undef U_set
--#undef make_atomic_add
--#undef make_atomic_cas
--#undef make_atomic_load
--#undef make_atomic_store
--#undef make_atomic_fas
--#undef make_atomic_add_body
--#undef make_atomic_cas_body
--#undef make_atomic_load_body
--#undef make_atomic_store_body
--#undef make_atomic_fas_body
--#undef intptr
--
- /*
- the macro below defines (as an expression) the code that
- will be run in spin-loops. Intel manuals recummend to have PAUSE there.
-@@ -328,7 +117,8 @@ make_atomic_store(ptr)
- #define MY_ATOMIC_NOT_1CPU 1
- extern int my_atomic_initialize();
-
--#ifdef __ATOMIC_SEQ_CST
-+#define MY_ATOMIC_MODE "gcc-atomics-smp"
-+
- #define MY_MEMORY_ORDER_RELAXED __ATOMIC_RELAXED
- #define MY_MEMORY_ORDER_CONSUME __ATOMIC_CONSUME
- #define MY_MEMORY_ORDER_ACQUIRE __ATOMIC_ACQUIRE
-@@ -364,43 +154,27 @@ extern int my_atomic_initialize();
- __atomic_compare_exchange_n((P), (E), (D), false, (S), (F))
- #define my_atomic_casptr_strong_explicit(P, E, D, S, F) \
- __atomic_compare_exchange_n((P), (E), (D), false, (S), (F))
--#else
--#define MY_MEMORY_ORDER_RELAXED
--#define MY_MEMORY_ORDER_CONSUME
--#define MY_MEMORY_ORDER_ACQUIRE
--#define MY_MEMORY_ORDER_RELEASE
--#define MY_MEMORY_ORDER_ACQ_REL
--#define MY_MEMORY_ORDER_SEQ_CST
--
--#define my_atomic_store32_explicit(P, D, O) my_atomic_store32((P), (D))
--#define my_atomic_store64_explicit(P, D, O) my_atomic_store64((P), (D))
--#define my_atomic_storeptr_explicit(P, D, O) my_atomic_storeptr((P), (D))
--
--#define my_atomic_load32_explicit(P, O) my_atomic_load32((P))
--#define my_atomic_load64_explicit(P, O) my_atomic_load64((P))
--#define my_atomic_loadptr_explicit(P, O) my_atomic_loadptr((P))
--
--#define my_atomic_fas32_explicit(P, D, O) my_atomic_fas32((P), (D))
--#define my_atomic_fas64_explicit(P, D, O) my_atomic_fas64((P), (D))
--#define my_atomic_fasptr_explicit(P, D, O) my_atomic_fasptr((P), (D))
--
--#define my_atomic_add32_explicit(P, A, O) my_atomic_add32((P), (A))
--#define my_atomic_add64_explicit(P, A, O) my_atomic_add64((P), (A))
--#define my_atomic_addptr_explicit(P, A, O) my_atomic_addptr((P), (A))
-
--#define my_atomic_cas32_weak_explicit(P, E, D, S, F) \
-- my_atomic_cas32((P), (E), (D))
--#define my_atomic_cas64_weak_explicit(P, E, D, S, F) \
-- my_atomic_cas64((P), (E), (D))
--#define my_atomic_casptr_weak_explicit(P, E, D, S, F) \
-- my_atomic_casptr((P), (E), (D))
-+#define my_atomic_store32(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST)
-+#define my_atomic_store64(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST)
-+#define my_atomic_storeptr(P, D) __atomic_store_n((P), (D), __ATOMIC_SEQ_CST)
-
--#define my_atomic_cas32_strong_explicit(P, E, D, S, F) \
-- my_atomic_cas32((P), (E), (D))
--#define my_atomic_cas64_strong_explicit(P, E, D, S, F) \
-- my_atomic_cas64((P), (E), (D))
--#define my_atomic_casptr_strong_explicit(P, E, D, S, F) \
-- my_atomic_casptr((P), (E), (D))
--#endif
-+#define my_atomic_load32(P) __atomic_load_n((P), __ATOMIC_SEQ_CST)
-+#define my_atomic_load64(P) __atomic_load_n((P), __ATOMIC_SEQ_CST)
-+#define my_atomic_loadptr(P) __atomic_load_n((P), __ATOMIC_SEQ_CST)
-+
-+#define my_atomic_fas32(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST)
-+#define my_atomic_fas64(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST)
-+#define my_atomic_fasptr(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST)
-+
-+#define my_atomic_add32(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST)
-+#define my_atomic_add64(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST)
-+
-+#define my_atomic_cas32(P, E, D) \
-+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
-+#define my_atomic_cas64(P, E, D) \
-+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
-+#define my_atomic_casptr(P, E, D) \
-+ __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
-
- #endif /* MY_ATOMIC_INCLUDED */
diff --git a/srcpkgs/mariadb/patches/libatomic.patch b/srcpkgs/mariadb/patches/libatomic.patch
deleted file mode 100644
index 0e8e872d9c2..00000000000
--- a/srcpkgs/mariadb/patches/libatomic.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Source: Debian, q66
-
-This ensures arches that need libatomic properly get it where necessary.
-It also removes the sync builtin checks that are not necessary when
-using C11 atomics (like we always are because we're on a modern gcc)
-that break build on e.g. ppc32 and mips.
-
---- configure.cmake
-+++ configure.cmake
-@@ -992,35 +992,19 @@ SET(SIGNAL_WITH_VIO_CLOSE 1)
-
- MARK_AS_ADVANCED(NO_ALARM)
-
--
--IF(WITH_ATOMIC_OPS STREQUAL "up")
-- SET(MY_ATOMIC_MODE_DUMMY 1 CACHE BOOL "Assume single-CPU mode, no concurrency")
--ELSEIF(WITH_ATOMIC_OPS STREQUAL "smp")
--ELSEIF(NOT WITH_ATOMIC_OPS)
-- CHECK_CXX_SOURCE_COMPILES("
-- int main()
-- {
-- int foo= -10; int bar= 10;
-- long long int foo64= -10; long long int bar64= 10;
-- if (!__sync_fetch_and_add(&foo, bar) || foo)
-- return -1;
-- bar= __sync_lock_test_and_set(&foo, bar);
-- if (bar || foo != 10)
-- return -1;
-- bar= __sync_val_compare_and_swap(&bar, foo, 15);
-- if (bar)
-- return -1;
-- if (!__sync_fetch_and_add(&foo64, bar64) || foo64)
-- return -1;
-- bar64= __sync_lock_test_and_set(&foo64, bar64);
-- if (bar64 || foo64 != 10)
-- return -1;
-- bar64= __sync_val_compare_and_swap(&bar64, foo, 15);
-- if (bar64)
-- return -1;
-- return 0;
-- }"
-- HAVE_GCC_ATOMIC_BUILTINS)
-+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_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()
- {
-@@ -1028,14 +1012,13 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
- long long int *ptr= &var;
- return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
- }"
-- HAVE_GCC_C11_ATOMICS)
--ELSE()
-- MESSAGE(FATAL_ERROR "${WITH_ATOMIC_OPS} is not a valid value for WITH_ATOMIC_OPS!")
-+ 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()
-
--SET(WITH_ATOMIC_OPS "${WITH_ATOMIC_OPS}" CACHE STRING "Implement atomic operations using atomic CPU instructions for multi-processor (smp) or uniprocessor (up) configuration. By default gcc built-in sync functions are used, if available and 'smp' configuration otherwise.")
--MARK_AS_ADVANCED(WITH_ATOMIC_OPS MY_ATOMIC_MODE_DUMMY)
--
- IF(WITH_VALGRIND)
- SET(HAVE_valgrind 1)
- ENDIF()
---- mysys/CMakeLists.txt
-+++ mysys/CMakeLists.txt
-@@ -74,6 +74,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings mysys_ssl ${ZLIB_LIBRARY}
- ${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${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)
---- sql/CMakeLists.txt
-+++ sql/CMakeLists.txt
-@@ -172,6 +172,9 @@ ELSE()
- SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
- ENDIF()
-
-+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+ TARGET_LINK_LIBRARIES(sql atomic)
-+ENDIF()
-
- IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
-
diff --git a/srcpkgs/mariadb/patches/mips-connect-unaligned.patch b/srcpkgs/mariadb/patches/mips-connect-unaligned.patch
new file mode 100644
index 00000000000..ae2f6e03d2e
--- /dev/null
+++ b/srcpkgs/mariadb/patches/mips-connect-unaligned.patch
@@ -0,0 +1,257 @@
+From: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
+Date: Thu, 10 Aug 2017 20:40:28 +0200
+Subject: mips-connect-unaligned
+
+---
+ storage/connect/valblk.cpp | 41 ++++++++++++++++++-------------------
+ storage/connect/valblk.h | 51 +++++++++++++++++++++++++++++-----------------
+ 2 files changed, 52 insertions(+), 40 deletions(-)
+
+--- storage/connect/valblk.cpp
++++ storage/connect/valblk.cpp
+@@ -268,14 +268,14 @@ bool TYPBLK<TYPE>::Init(PGLOBAL g, bool
+ template <class TYPE>
+ char *TYPBLK<TYPE>::GetCharString(char *p, int n)
+ {
+- sprintf(p, Fmt, Typp[n]);
++ sprintf(p, Fmt, UnalignedRead(n));
+ return p;
+ } // end of GetCharString
+
+ template <>
+ char *TYPBLK<double>::GetCharString(char *p, int n)
+ {
+- sprintf(p, Fmt, Prec, Typp[n]);
++ sprintf(p, Fmt, Prec, UnalignedRead(n));
+ return p;
+ } // end of GetCharString
+
+@@ -291,7 +291,7 @@ void TYPBLK<TYPE>::SetValue(PVAL valp, i
+ ChkTyp(valp);
+
+ if (!(b = valp->IsNull()))
+- Typp[n] = GetTypedValue(valp);
++ UnalignedWrite(n, GetTypedValue(valp));
+ else
+ Reset(n);
+
+@@ -353,9 +353,9 @@ void TYPBLK<TYPE>::SetValue(PCSZ p, int
+ ulonglong val = CharToNumber(p, strlen(p), maxval, Unsigned, &minus);
+
+ if (minus && val < maxval)
+- Typp[n] = (TYPE)(-(signed)val);
++ UnalignedWrite(n, (TYPE)(-(signed)val));
+ else
+- Typp[n] = (TYPE)val;
++ UnalignedWrite(n, (TYPE)val);
+
+ SetNull(n, false);
+ } // end of SetValue
+@@ -398,7 +398,7 @@ void TYPBLK<double>::SetValue(PCSZ p, in
+ throw Type;
+ } // endif Check
+
+- Typp[n] = atof(p);
++ UnalignedWrite(n, atof(p));
+ SetNull(n, false);
+ } // end of SetValue
+
+@@ -430,7 +430,7 @@ void TYPBLK<TYPE>::SetValue(PVBLK pv, in
+ ChkTyp(pv);
+
+ if (!(b = pv->IsNull(n2) && Nullable))
+- Typp[n1] = GetTypedValue(pv, n2);
++ UnalignedWrite(n1, GetTypedValue(pv, n2));
+ else
+ Reset(n1);
+
+@@ -481,10 +481,10 @@ void TYPBLK<TYPE>::SetMin(PVAL valp, int
+ {
+ CheckParms(valp, n)
+ TYPE tval = GetTypedValue(valp);
+- TYPE& tmin = Typp[n];
++ TYPE tmin = UnalignedRead(n);
+
+ if (tval < tmin)
+- tmin = tval;
++ UnalignedWrite(n, tval);
+
+ } // end of SetMin
+
+@@ -496,10 +496,10 @@ void TYPBLK<TYPE>::SetMax(PVAL valp, int
+ {
+ CheckParms(valp, n)
+ TYPE tval = GetTypedValue(valp);
+- TYPE& tmin = Typp[n];
++ TYPE tmin = UnalignedRead(n);
+
+ if (tval > tmin)
+- tmin = tval;
++ UnalignedWrite(n, tval);
+
+ } // end of SetMax
+
+@@ -513,8 +513,7 @@ void TYPBLK<TYPE>::SetValues(PVBLK pv, i
+ CheckType(pv)
+ TYPE *lp = ((TYPBLK*)pv)->Typp;
+
+- for (int i = k; i < n; i++) // TODO
+- Typp[i] = lp[i];
++ memcpy(Typp + k, lp + k, sizeof(TYPE) * n);
+
+ } // end of SetValues
+ #endif // 0
+@@ -525,7 +524,7 @@ void TYPBLK<TYPE>::SetValues(PVBLK pv, i
+ template <class TYPE>
+ void TYPBLK<TYPE>::Move(int i, int j)
+ {
+- Typp[j] = Typp[i];
++ UnalignedWrite(j, UnalignedRead(i));
+ MoveNull(i, j);
+ } // end of Move
+
+@@ -539,7 +538,7 @@ int TYPBLK<TYPE>::CompVal(PVAL vp, int n
+ ChkIndx(n);
+ ChkTyp(vp);
+ #endif // _DEBUG
+- TYPE mlv = Typp[n];
++ TYPE mlv = UnalignedRead(n);
+ TYPE vlv = GetTypedValue(vp);
+
+ return (vlv > mlv) ? 1 : (vlv < mlv) ? (-1) : 0;
+@@ -551,8 +550,8 @@ int TYPBLK<TYPE>::CompVal(PVAL vp, int n
+ template <class TYPE>
+ int TYPBLK<TYPE>::CompVal(int i1, int i2)
+ {
+- TYPE lv1 = Typp[i1];
+- TYPE lv2 = Typp[i2];
++ TYPE lv1 = UnalignedRead(i1);
++ TYPE lv2 = UnalignedRead(i2);
+
+ return (lv1 > lv2) ? 1 : (lv1 < lv2) ? (-1) : 0;
+ } // end of CompVal
+@@ -589,7 +588,7 @@ int TYPBLK<TYPE>::Find(PVAL vp)
+ TYPE n = GetTypedValue(vp);
+
+ for (i = 0; i < Nval; i++)
+- if (n == Typp[i])
++ if (n == UnalignedRead(i))
+ break;
+
+ return (i < Nval) ? i : (-1);
+@@ -605,7 +604,7 @@ int TYPBLK<TYPE>::GetMaxLength(void)
+ int i, n, m;
+
+ for (i = n = 0; i < Nval; i++) {
+- m = sprintf(buf, Fmt, Typp[i]);
++ m = sprintf(buf, Fmt, UnalignedRead(i));
+ n = MY_MAX(n, m);
+ } // endfor i
+
+@@ -1335,7 +1334,7 @@ char *DATBLK::GetCharString(char *p, int
+ char *vp;
+
+ if (Dvalp) {
+- Dvalp->SetValue(Typp[n]);
++ Dvalp->SetValue(UnalignedRead(n));
+ vp = Dvalp->GetCharString(p);
+ } else
+ vp = TYPBLK<int>::GetCharString(p, n);
+@@ -1351,7 +1350,7 @@ void DATBLK::SetValue(PCSZ p, int n)
+ if (Dvalp) {
+ // Decode the string according to format
+ Dvalp->SetValue_psz(p);
+- Typp[n] = Dvalp->GetIntValue();
++ UnalignedWrite(n, Dvalp->GetIntValue());
+ } else
+ TYPBLK<int>::SetValue(p, n);
+
+--- storage/connect/valblk.h
++++ storage/connect/valblk.h
+@@ -139,6 +139,7 @@ class VALBLK : public BLOCK {
+ int Prec; // Precision of float values
+ }; // end of class VALBLK
+
++
+ /***********************************************************************/
+ /* Class TYPBLK: represents a block of typed values. */
+ /***********************************************************************/
+@@ -151,40 +152,41 @@ class TYPBLK : public VALBLK {
+ // Implementation
+ virtual bool Init(PGLOBAL g, bool check);
+ virtual int GetVlen(void) {return sizeof(TYPE);}
+- virtual char GetTinyValue(int n) {return (char)Typp[n];}
+- virtual uchar GetUTinyValue(int n) {return (uchar)Typp[n];}
+- virtual short GetShortValue(int n) {return (short)Typp[n];}
+- virtual ushort GetUShortValue(int n) {return (ushort)Typp[n];}
+- virtual int GetIntValue(int n) {return (int)Typp[n];}
+- virtual uint GetUIntValue(int n) {return (uint)Typp[n];}
+- virtual longlong GetBigintValue(int n) {return (longlong)Typp[n];}
+- virtual ulonglong GetUBigintValue(int n) {return (ulonglong)Typp[n];}
+- virtual double GetFloatValue(int n) {return (double)Typp[n];}
++
++ virtual char GetTinyValue(int n) {return (char)UnalignedRead(n);}
++ virtual uchar GetUTinyValue(int n) {return (uchar)UnalignedRead(n);}
++ virtual short GetShortValue(int n) {return (short)UnalignedRead(n);}
++ virtual ushort GetUShortValue(int n) {return (ushort)UnalignedRead(n);}
++ virtual int GetIntValue(int n) {return (int)UnalignedRead(n);}
++ virtual uint GetUIntValue(int n) {return (uint)UnalignedRead(n);}
++ virtual longlong GetBigintValue(int n) {return (longlong)UnalignedRead(n);}
++ virtual ulonglong GetUBigintValue(int n) {return (ulonglong)UnalignedRead(n);}
++ virtual double GetFloatValue(int n) {return (double)UnalignedRead(n);}
+ virtual char *GetCharString(char *p, int n);
+- virtual void Reset(int n) {Typp[n] = 0;}
++ virtual void Reset(int n) {UnalignedWrite(n, 0);}
+
+ // Methods
+ using VALBLK::SetValue;
+ virtual void SetValue(PCSZ sp, int n);
+ virtual void SetValue(const char *sp, uint len, int n);
+ virtual void SetValue(short sval, int n)
+- {Typp[n] = (TYPE)sval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)sval); SetNull(n, false);}
+ virtual void SetValue(ushort sval, int n)
+- {Typp[n] = (TYPE)sval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)sval); SetNull(n, false);}
+ virtual void SetValue(int lval, int n)
+- {Typp[n] = (TYPE)lval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)lval); SetNull(n, false);}
+ virtual void SetValue(uint lval, int n)
+- {Typp[n] = (TYPE)lval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)lval); SetNull(n, false);}
+ virtual void SetValue(longlong lval, int n)
+- {Typp[n] = (TYPE)lval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)lval); SetNull(n, false);}
+ virtual void SetValue(ulonglong lval, int n)
+- {Typp[n] = (TYPE)lval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)lval); SetNull(n, false);}
+ virtual void SetValue(double fval, int n)
+- {Typp[n] = (TYPE)fval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)fval); SetNull(n, false);}
+ virtual void SetValue(char cval, int n)
+- {Typp[n] = (TYPE)cval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)cval); SetNull(n, false);}
+ virtual void SetValue(uchar cval, int n)
+- {Typp[n] = (TYPE)cval; SetNull(n, false);}
++ {UnalignedWrite(n, (TYPE)cval); SetNull(n, false);}
+ virtual void SetValue(PVAL valp, int n);
+ virtual void SetValue(PVBLK pv, int n1, int n2);
+ virtual void SetMin(PVAL valp, int n);
+@@ -206,6 +208,17 @@ class TYPBLK : public VALBLK {
+ // Members
+ TYPE* const &Typp;
+ const char *Fmt;
++
++ // Unaligned access
++ TYPE UnalignedRead(int n) const {
++ TYPE result;
++ memcpy(&result, Typp + n, sizeof(TYPE));
++ return result;
++ }
++
++ void UnalignedWrite(int n, TYPE value) {
++ memcpy(Typp + n, &value, sizeof(TYPE));
++ }
+ }; // end of class TYPBLK
+
+ /***********************************************************************/
diff --git a/srcpkgs/mariadb/patches/mips-innobase-atomic.patch b/srcpkgs/mariadb/patches/mips-innobase-atomic.patch
new file mode 100644
index 00000000000..195fe41a422
--- /dev/null
+++ b/srcpkgs/mariadb/patches/mips-innobase-atomic.patch
@@ -0,0 +1,20 @@
+From: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
+Date: Thu, 10 Aug 2017 20:40:29 +0200
+Subject: mips-innobase-atomic
+
+---
+ storage/innobase/include/os0sync.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git storage/innobase/include/os0sync.h storage/innobase/include/os0sync.h
+index bb225c5..6520237 100644
+--- storage/innobase/include/os0sync.h
++++ storage/innobase/include/os0sync.h
+@@ -37,6 +37,7 @@ Created 9/6/1995 Heikki Tuuri
+
+ #include "univ.i"
+ #include "ut0lst.h"
++#include "sync0types.h"
+
+ /** CPU cache line size */
+ #ifdef __powerpc__
diff --git a/srcpkgs/mariadb/patches/mips-machine.patch b/srcpkgs/mariadb/patches/mips-machine.patch
new file mode 100644
index 00000000000..3dbbbaaa538
--- /dev/null
+++ b/srcpkgs/mariadb/patches/mips-machine.patch
@@ -0,0 +1,23 @@
+From: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
+Date: Thu, 10 Aug 2017 20:40:29 +0200
+Subject: mips-machine
+
+---
+ cmake/package_name.cmake | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git cmake/package_name.cmake cmake/package_name.cmake
+index 4930a6b..7681f78 100644
+--- cmake/package_name.cmake
++++ cmake/package_name.cmake
+@@ -34,6 +34,10 @@ IF(NOT VERSION)
+ SET(DEFAULT_MACHINE "mips")
+ ENDIF()
+
++ IF(NOT 64BIT AND CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64")
++ SET(DEFAULT_MACHINE "mips")
++ ENDIF()
++
+ IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
+ SET(NEED_DASH_BETWEEN_PLATFORM_AND_MACHINE 0)
+ SET(DEFAULT_PLATFORM "win")
diff --git a/srcpkgs/mariadb/patches/musl-ppc.patch b/srcpkgs/mariadb/patches/musl-ppc.patch
index 16cbac71a94..57c7f4bf15b 100644
--- a/srcpkgs/mariadb/patches/musl-ppc.patch
+++ b/srcpkgs/mariadb/patches/musl-ppc.patch
@@ -15,12 +15,11 @@ builtin for this in gcc for ages, so just use that instead.
# endif
--- storage/xtradb/include/ut0ut.h
+++ storage/xtradb/include/ut0ut.h
-@@ -86,8 +86,7 @@ struct ut_when_dtor {
- independent way by using YieldProcessor. */
- # define UT_RELAX_CPU() YieldProcessor()
- # elif defined(__powerpc__)
--#include <sys/platform/ppc.h>
--# define UT_RELAX_CPU() __ppc_get_timebase()
+@@ -86,6 +86,8 @@
+ # elif defined(__powerpc__) && defined __GLIBC__
+ #include <sys/platform/ppc.h>
+ # define UT_RELAX_CPU() __ppc_get_timebase()
++# elif defined(__powerpc__)
+# define UT_RELAX_CPU() __builtin_ppc_get_timebase()
# else
# define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
diff --git a/srcpkgs/mariadb/template b/srcpkgs/mariadb/template
index 88611438a99..cfdd2717fc5 100644
--- a/srcpkgs/mariadb/template
+++ b/srcpkgs/mariadb/template
@@ -1,7 +1,7 @@
# Template file for 'mariadb'
pkgname=mariadb
-version=10.1.30
-revision=8
+version=10.1.45
+revision=1
build_style=cmake
configure_args="-DMYSQL_DATADIR=/var/lib/mysql
-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock -DDEFAULT_CHARSET=utf8
@@ -27,7 +27,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-only"
homepage="https://mariadb.org/"
distfiles="http://archive.mariadb.org/$pkgname-$version/source/$pkgname-$version.tar.gz"
-checksum=173a5e5a24819e0a469c3bd09b5c98491676c37c6095882a2ea34c5af0996c88
+checksum=9d8f0f71f9613b2028ffc5c5be8b98948ec955eb0d89600d18ed7cc04807dad5
lib32disabled=yes
provides="mysql-${version}_${revision}"
replaces="mysql>=0"
next prev parent reply other threads:[~2020-05-27 23:58 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-27 6:23 [PR PATCH] " rmccask
2020-05-27 12:48 ` [PR PATCH] [Updated] " rmccask
2020-05-27 12:52 ` sgn
2020-05-27 12:54 ` sgn
2020-05-27 17:28 ` [PR PATCH] [Updated] " rmccask
2020-05-27 18:17 ` rmccask
2020-05-27 18:17 ` rmccask
2020-05-27 18:23 ` rmccask
2020-05-27 22:45 ` [PR PATCH] [Updated] " rmccask
2020-05-27 23:58 ` rmccask [this message]
2020-05-28 3:19 ` rmccask
2020-05-28 3:48 ` rmccask
2020-10-24 15:26 ` [PR PATCH] [Closed]: " leahneukirchen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200527235802.SMR8PsaPNIuOyuYEqeqXBgbw85RdjZAsQBBLSzfj8G8@z \
--to=rmccask@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).