mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-16 16:27:27 +00:00
mariadb: update to 10.7.4
LTS version, bugfix only update. Drop clang-64bit-atomics.patch as the patched code was removed in this update. https://github.com/MariaDB/server/commit/cf483a7766d0730872232fdedd727d30a493fe29 Includes these CVES: CVE-2022-27458 CVE-2022-27457 CVE-2022-27456 CVE-2022-27455 CVE-2022-27452 CVE-2022-27451 CVE-2022-27449 CVE-2022-27448 CVE-2022-27447 CVE-2022-27446 CVE-2022-27445 CVE-2022-27444 CVE-2022-27387 CVE-2022-27386 CVE-2022-27384 CVE-2022-27383 CVE-2022-27382 CVE-2022-27381 CVE-2022-27380 CVE-2022-27379 CVE-2022-27378 CVE-2022-27377 CVE-2022-27376 Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -20,11 +20,10 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
|
|||||||
file://mm_malloc.patch \
|
file://mm_malloc.patch \
|
||||||
file://sys_futex.patch \
|
file://sys_futex.patch \
|
||||||
file://mariadb-openssl3.patch \
|
file://mariadb-openssl3.patch \
|
||||||
file://clang-64bit-atomics.patch \
|
|
||||||
"
|
"
|
||||||
SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
|
SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
|
||||||
|
|
||||||
SRC_URI[sha256sum] = "da286919ffc9c913282202349709b6ba4ebcd342815e8dae0aa6b6bd8f515cd4"
|
SRC_URI[sha256sum] = "73dd9c9d325520f20ca5e0ef16f94b7be1146bed7e4a78e735c20daebf3a4173"
|
||||||
|
|
||||||
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
|
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
|
||||||
|
|
||||||
|
|||||||
@@ -1,178 +0,0 @@
|
|||||||
Prevent Clang from emitting atomic libcalls
|
|
||||||
|
|
||||||
Clang expects 8-byte alignment for some 64-bit atomic operations
|
|
||||||
in some 32-bit targets. Native instruction lock cmpxchg8b (for x86)
|
|
||||||
should only require 4-byte alignment.
|
|
||||||
|
|
||||||
This patch tries to add 8-byte alignents to data needing atomic ops
|
|
||||||
which helps clang to not generate the libatomic calls but emit
|
|
||||||
builtins directly.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted[https://jira.mariadb.org/browse/MDEV-28162]
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
|
|
||||||
--- a/include/my_atomic.h
|
|
||||||
+++ b/include/my_atomic.h
|
|
||||||
@@ -115,6 +115,16 @@
|
|
||||||
#include "atomic/gcc_builtins.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <stdint.h>
|
|
||||||
+
|
|
||||||
+# ifdef __GNUC__
|
|
||||||
+typedef __attribute__((__aligned__(8))) int64 ATOMIC_I64;
|
|
||||||
+typedef __attribute__((__aligned__(8))) uint64 ATOMIC_U64;
|
|
||||||
+# else
|
|
||||||
+typedef int64 ATOMIC_I64;
|
|
||||||
+typedef uint64 ATOMIC_U64;
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
#if SIZEOF_LONG == 4
|
|
||||||
#define my_atomic_addlong(A,B) my_atomic_add32((int32*) (A), (B))
|
|
||||||
#define my_atomic_loadlong(A) my_atomic_load32((int32*) (A))
|
|
||||||
@@ -123,12 +133,12 @@
|
|
||||||
#define my_atomic_faslong(A,B) my_atomic_fas32((int32*) (A), (B))
|
|
||||||
#define my_atomic_caslong(A,B,C) my_atomic_cas32((int32*) (A), (int32*) (B), (C))
|
|
||||||
#else
|
|
||||||
-#define my_atomic_addlong(A,B) my_atomic_add64((int64*) (A), (B))
|
|
||||||
-#define my_atomic_loadlong(A) my_atomic_load64((int64*) (A))
|
|
||||||
-#define my_atomic_loadlong_explicit(A,O) my_atomic_load64_explicit((int64*) (A), (O))
|
|
||||||
-#define my_atomic_storelong(A,B) my_atomic_store64((int64*) (A), (B))
|
|
||||||
-#define my_atomic_faslong(A,B) my_atomic_fas64((int64*) (A), (B))
|
|
||||||
-#define my_atomic_caslong(A,B,C) my_atomic_cas64((int64*) (A), (int64*) (B), (C))
|
|
||||||
+#define my_atomic_addlong(A,B) my_atomic_add64((ATOMIC_I64*) (A), (B))
|
|
||||||
+#define my_atomic_loadlong(A) my_atomic_load64((ATOMIC_I64*) (A))
|
|
||||||
+#define my_atomic_loadlong_explicit(A,O) my_atomic_load64_explicit((ATOMIC_I64*) (A), (O))
|
|
||||||
+#define my_atomic_storelong(A,B) my_atomic_store64((ATOMIC_I64*) (A), (B))
|
|
||||||
+#define my_atomic_faslong(A,B) my_atomic_fas64((ATOMIC_I64*) (A), (B))
|
|
||||||
+#define my_atomic_caslong(A,B,C) my_atomic_cas64((ATOMIC_I64*) (A), (ATOMIC_I64*) (B), (C))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef MY_MEMORY_ORDER_SEQ_CST
|
|
||||||
--- a/storage/perfschema/pfs_atomic.h
|
|
||||||
+++ b/storage/perfschema/pfs_atomic.h
|
|
||||||
@@ -41,7 +41,7 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic load. */
|
|
||||||
- static inline int64 load_64(int64 *ptr)
|
|
||||||
+ static inline int64 load_64(ATOMIC_I64 *ptr)
|
|
||||||
{
|
|
||||||
return my_atomic_load64(ptr);
|
|
||||||
}
|
|
||||||
@@ -53,9 +53,9 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic load. */
|
|
||||||
- static inline uint64 load_u64(uint64 *ptr)
|
|
||||||
+ static inline uint64 load_u64(ATOMIC_U64 *ptr)
|
|
||||||
{
|
|
||||||
- return (uint64) my_atomic_load64((int64*) ptr);
|
|
||||||
+ return (uint64) my_atomic_load64((ATOMIC_I64*) ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic store. */
|
|
||||||
@@ -65,7 +65,7 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic store. */
|
|
||||||
- static inline void store_64(int64 *ptr, int64 value)
|
|
||||||
+ static inline void store_64(ATOMIC_I64 *ptr, int64 value)
|
|
||||||
{
|
|
||||||
my_atomic_store64(ptr, value);
|
|
||||||
}
|
|
||||||
@@ -77,9 +77,9 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic store. */
|
|
||||||
- static inline void store_u64(uint64 *ptr, uint64 value)
|
|
||||||
+ static inline void store_u64(ATOMIC_U64 *ptr, uint64 value)
|
|
||||||
{
|
|
||||||
- my_atomic_store64((int64*) ptr, (int64) value);
|
|
||||||
+ my_atomic_store64((ATOMIC_I64*) ptr, (int64) value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic add. */
|
|
||||||
@@ -89,7 +89,7 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic add. */
|
|
||||||
- static inline int64 add_64(int64 *ptr, int64 value)
|
|
||||||
+ static inline int64 add_64(ATOMIC_I64 *ptr, int64 value)
|
|
||||||
{
|
|
||||||
return my_atomic_add64(ptr, value);
|
|
||||||
}
|
|
||||||
@@ -101,9 +101,9 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic add. */
|
|
||||||
- static inline uint64 add_u64(uint64 *ptr, uint64 value)
|
|
||||||
+ static inline uint64 add_u64(ATOMIC_U64 *ptr, uint64 value)
|
|
||||||
{
|
|
||||||
- return (uint64) my_atomic_add64((int64*) ptr, (int64) value);
|
|
||||||
+ return (uint64) my_atomic_add64((ATOMIC_I64*) ptr, (int64) value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic compare and swap. */
|
|
||||||
@@ -114,7 +114,7 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic compare and swap. */
|
|
||||||
- static inline bool cas_64(int64 *ptr, int64 *old_value,
|
|
||||||
+ static inline bool cas_64(ATOMIC_I64 *ptr, ATOMIC_I64 *old_value,
|
|
||||||
int64 new_value)
|
|
||||||
{
|
|
||||||
return my_atomic_cas64(ptr, old_value, new_value);
|
|
||||||
@@ -129,10 +129,10 @@ public:
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Atomic compare and swap. */
|
|
||||||
- static inline bool cas_u64(uint64 *ptr, uint64 *old_value,
|
|
||||||
+ static inline bool cas_u64(ATOMIC_U64 *ptr, ATOMIC_U64 *old_value,
|
|
||||||
uint64 new_value)
|
|
||||||
{
|
|
||||||
- return my_atomic_cas64((int64*) ptr, (int64*) old_value,
|
|
||||||
+ return my_atomic_cas64((ATOMIC_I64*) ptr, (ATOMIC_I64*) old_value,
|
|
||||||
(uint64) new_value);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
--- a/sql/sql_class.h
|
|
||||||
+++ b/sql/sql_class.h
|
|
||||||
@@ -1049,7 +1049,7 @@ static inline void update_global_memory_
|
|
||||||
(longlong) global_status_var.global_memory_used,
|
|
||||||
size));
|
|
||||||
// workaround for gcc 4.2.4-1ubuntu4 -fPIE (from DEB_BUILD_HARDENING=1)
|
|
||||||
- int64 volatile * volatile ptr= &global_status_var.global_memory_used;
|
|
||||||
+ ATOMIC_I64 volatile * volatile ptr= &global_status_var.global_memory_used;
|
|
||||||
my_atomic_add64_explicit(ptr, size, MY_MEMORY_ORDER_RELAXED);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/storage/innobase/include/srv0mon.h
|
|
||||||
+++ b/storage/innobase/include/srv0mon.h
|
|
||||||
@@ -49,7 +49,7 @@ enum monitor_running_status {
|
|
||||||
typedef enum monitor_running_status monitor_running_t;
|
|
||||||
|
|
||||||
/** Monitor counter value type */
|
|
||||||
-typedef int64_t mon_type_t;
|
|
||||||
+typedef ATOMIC_I64 mon_type_t;
|
|
||||||
|
|
||||||
/** Two monitor structures are defined in this file. One is
|
|
||||||
"monitor_value_t" which contains dynamic counter values for each
|
|
||||||
@@ -568,7 +568,7 @@ Use MONITOR_INC if appropriate mutex pro
|
|
||||||
if (enabled) { \
|
|
||||||
ib_uint64_t value; \
|
|
||||||
value = my_atomic_add64_explicit( \
|
|
||||||
- (int64*) &MONITOR_VALUE(monitor), 1, \
|
|
||||||
+ (ATOMIC_I64*) &MONITOR_VALUE(monitor), 1, \
|
|
||||||
MY_MEMORY_ORDER_RELAXED) + 1; \
|
|
||||||
/* Note: This is not 100% accurate because of the \
|
|
||||||
inherent race, we ignore it due to performance. */ \
|
|
||||||
@@ -585,7 +585,7 @@ Use MONITOR_DEC if appropriate mutex pro
|
|
||||||
if (enabled) { \
|
|
||||||
ib_uint64_t value; \
|
|
||||||
value = my_atomic_add64_explicit( \
|
|
||||||
- (int64*) &MONITOR_VALUE(monitor), -1, \
|
|
||||||
+ (ATOMIC_I64*) &MONITOR_VALUE(monitor), -1, \
|
|
||||||
MY_MEMORY_ORDER_RELAXED) - 1; \
|
|
||||||
/* Note: This is not 100% accurate because of the \
|
|
||||||
inherent race, we ignore it due to performance. */ \
|
|
||||||
Reference in New Issue
Block a user