on x86 ( qemux86 ) This fails with pfs_instr.cc:(.text+0x10a5): undefined reference to `__atomic_fetch_add_8'
see https://errors.yoctoproject.org/Errors/Details/657260/ somewhere we need to link with latomic on x86 On Thu, May 26, 2022 at 12:32 PM Armin Kuster <akuster...@gmail.com> wrote: > > 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 <akuster...@gmail.com> > --- > ...ive_10.7.3.bb => mariadb-native_10.7.4.bb} | 0 > meta-oe/recipes-dbs/mysql/mariadb.inc | 3 +- > .../mysql/mariadb/clang-64bit-atomics.patch | 178 ------------------ > .../{mariadb_10.7.3.bb => mariadb_10.7.4.bb} | 0 > 4 files changed, 1 insertion(+), 180 deletions(-) > rename meta-oe/recipes-dbs/mysql/{mariadb-native_10.7.3.bb => > mariadb-native_10.7.4.bb} (100%) > delete mode 100644 > meta-oe/recipes-dbs/mysql/mariadb/clang-64bit-atomics.patch > rename meta-oe/recipes-dbs/mysql/{mariadb_10.7.3.bb => mariadb_10.7.4.bb} > (100%) > > diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.7.3.bb > b/meta-oe/recipes-dbs/mysql/mariadb-native_10.7.4.bb > similarity index 100% > rename from meta-oe/recipes-dbs/mysql/mariadb-native_10.7.3.bb > rename to meta-oe/recipes-dbs/mysql/mariadb-native_10.7.4.bb > diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc > b/meta-oe/recipes-dbs/mysql/mariadb.inc > index 855f124834..3f246dc0a5 100644 > --- a/meta-oe/recipes-dbs/mysql/mariadb.inc > +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc > @@ -20,11 +20,10 @@ SRC_URI = > "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ > file://mm_malloc.patch \ > file://sys_futex.patch \ > file://mariadb-openssl3.patch \ > - file://clang-64bit-atomics.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" > > diff --git a/meta-oe/recipes-dbs/mysql/mariadb/clang-64bit-atomics.patch > b/meta-oe/recipes-dbs/mysql/mariadb/clang-64bit-atomics.patch > deleted file mode 100644 > index cdc2947b7b..0000000000 > --- a/meta-oe/recipes-dbs/mysql/mariadb/clang-64bit-atomics.patch > +++ /dev/null > @@ -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.k...@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. */ \ > diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.7.3.bb > b/meta-oe/recipes-dbs/mysql/mariadb_10.7.4.bb > similarity index 100% > rename from meta-oe/recipes-dbs/mysql/mariadb_10.7.3.bb > rename to meta-oe/recipes-dbs/mysql/mariadb_10.7.4.bb > -- > 2.25.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#97303): https://lists.openembedded.org/g/openembedded-devel/message/97303 Mute This Topic: https://lists.openembedded.org/mt/91362003/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-