From f66fc1d2e5a1e7fd5ea2a433a7f7126775ba5adf Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 7 Apr 2025 17:49:43 -0700 Subject: [PATCH] mariadb: Fix build on riscv32 Signed-off-by: Khem Raj --- meta-oe/recipes-dbs/mysql/mariadb.inc | 1 + .../recipes-dbs/mysql/mariadb/riscv32.patch | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/riscv32.patch diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index eedb6735a4..3a39d036f7 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -25,6 +25,7 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ file://0001-Add-missing-includes-cstdint-and-cstdio.patch \ file://0001-Ensure-compatibility-with-ARMv9-by-updating-.arch-di.patch \ file://3871.patch \ + file://riscv32.patch \ " SRC_URI[sha256sum] = "ff6595f8c482f9921e39b97fa1122377a69f0dcbd92553c6b9032cbf0e9b5354" diff --git a/meta-oe/recipes-dbs/mysql/mariadb/riscv32.patch b/meta-oe/recipes-dbs/mysql/mariadb/riscv32.patch new file mode 100644 index 0000000000..24b86584e3 --- /dev/null +++ b/meta-oe/recipes-dbs/mysql/mariadb/riscv32.patch @@ -0,0 +1,19 @@ +Do not use static_cast in C sources + +C compiler does not recognise static_cast which is a C++ keyword +and bails out compiling mysys/my_rdtsc.c, use traditional typecast +instead + +Upstream-Status: Submitted [https://github.com/MariaDB/server/pull/1981/files#r2032207090] +Signed-off-by: Khem Raj +--- a/include/my_rdtsc.h ++++ b/include/my_rdtsc.h +@@ -226,7 +226,7 @@ static inline ulonglong my_timer_cycles( + "sub %0, zero, %0\n" + "and %1, %1, %0\n" + : "=r"(result_hi0), "=r"(result_lo), "=r"(result_hi1)); +- return (static_cast(result_hi1) << 32) | result_lo; ++ return ((ulonglong)result_hi1 << 32) | result_lo; + # else + ulonglong result; + __asm __volatile__("rdtime %0" : "=r"(result));