diff mbox series

[meta-oe,2/3] mariadb: Fix build on riscv32

Message ID 20250408025206.548418-2-raj.khem@gmail.com
State New
Headers show
Series [meta-oe,1/3] mariadb: Fix build with clang | expand

Commit Message

Khem Raj April 8, 2025, 2:52 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 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 mbox series

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 <raj.khem@gmail.com>
+--- 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<ulonglong>(result_hi1) << 32) | result_lo;
++    return ((ulonglong)result_hi1 << 32) | result_lo;
+ # else
+     ulonglong result;
+     __asm __volatile__("rdtime %0" : "=r"(result));