libmariadb: update to 3.4.5

Backport upstream patch fixing compilation with GCC 15.

Remove upstreamed patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev
2025-07-12 21:05:56 -07:00
committed by Tianling Shen
parent d3c5050e35
commit ac5377e031
4 changed files with 45 additions and 33 deletions

View File

@@ -6,7 +6,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libmariadb
PKG_VERSION:=3.4.1
PKG_VERSION:=3.4.5
PKG_RELEASE:=1
PKG_SOURCE:=mariadb-connector-c-$(PKG_VERSION)-src.tar.gz
@@ -14,7 +14,7 @@ PKG_SOURCE_URL:=\
https://mirror.netcologne.de/mariadb/connector-c-$(PKG_VERSION) \
https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/connector-c-$(PKG_VERSION) \
https://dlm.mariadb.com/3907132/Connectors/c/connector-c-$(PKG_VERSION)
PKG_HASH:=0a7f2522a44a7369c1dda89676e43485037596a7b1534898448175178aedeb4d
PKG_HASH:=b17e193816cb25c3364c2cc92a0ad3f1d0ad9f0f484dc76b8e7bdb5b50eac1a3
PKG_BUILD_DIR:=$(BUILD_DIR)/mariadb-connector-c-$(PKG_VERSION)-src
PKG_MAINTAINER:=Michal Hrusecky <Michal@Hrusecky.net>

View File

@@ -10,20 +10,9 @@ of the ucontext.h C-API.
Thus additionally link libmariadb to libucontext which is a library
providing these system calls on platforms not supporting them out of
the box - like musl based platforms.
--- a/libmariadb/CMakeLists.txt
+++ b/libmariadb/CMakeLists.txt
@@ -458,7 +458,7 @@ ELSE()
SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINKER_LANGUAGE C)
ENDIF()
-TARGET_LINK_LIBRARIES(libmariadb LINK_PRIVATE ${SYSTEM_LIBS} ${CRYPTO_LIBS})
+TARGET_LINK_LIBRARIES(libmariadb LINK_PRIVATE ${SYSTEM_LIBS} ${CRYPTO_LIBS} ${LIBUCONTEXT_POSIX} ${LIBUCONTEXT})
SIGN_TARGET(libmariadb)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -251,6 +251,14 @@ IF(UNIX)
@@ -263,11 +263,19 @@ IF(UNIX)
SEARCH_LIBRARY(LIBPTHREAD pthread_getspecific "pthread;pthreads")
SEARCH_LIBRARY(LIBNSL gethostbyname_r "nsl_r;nsl")
SEARCH_LIBRARY(LIBSOCKET setsockopt socket)
@@ -37,23 +26,30 @@ the box - like musl based platforms.
+ ENDIF()
FIND_PACKAGE(Threads)
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARY}
${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
- ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
+ ${LIBSOCKET} ${LIBUCONTEXT} ${LIBUCONTEXT_POSIX} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBNSL} ${LIBBIND} ${LIBICONV}
- ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
+ ${LIBSOCKET} ${LIBUCONTEXT} ${LIBUCONTEXT_POSIX} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
#remove possible dups from required libraries
LIST(LENGTH CMAKE_REQUIRED_LIBRARIES rllength)
IF(${rllength} GREATER 0)
--- a/include/ma_config.h.in
+++ b/include/ma_config.h.in
@@ -28,6 +28,7 @@
@@ -29,6 +29,7 @@
#cmakedefine HAVE_SYS_UN_H 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_UCONTEXT_H 1
+#cmakedefine HAVE_LIBUCONTEXT_POSIX 1
#cmakedefine HAVE_BOOST_CONTEXT_H 1
/*
* function definitions - processed in LibmysqlFunctions.txt
--- a/include/ma_context.h
+++ b/include/ma_context.h
@@ -32,7 +32,7 @@
#define MY_CONTEXT_USE_X86_64_GCC_ASM
#elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__)
#define MY_CONTEXT_USE_I386_GCC_ASM
@@ -61,7 +61,7 @@
#define MY_CONTEXT_USE_AARCH64_GCC_ASM
#elif defined(HAVE_BOOST_CONTEXT_H)
#define MY_CONTEXT_USE_BOOST_CONTEXT
-#elif defined(HAVE_UCONTEXT_H)
+#elif defined(HAVE_UCONTEXT_H) || defined(HAVE_LIBUCONTEXT_POSIX)
#define MY_CONTEXT_USE_UCONTEXT

View File

@@ -1,12 +0,0 @@
--- a/libmariadb/ma_context.c
+++ b/libmariadb/ma_context.c
@@ -92,6 +92,9 @@ my_context_spawn(struct my_context *c, v
{
int err;
union pass_void_ptr_as_2_int u;
+ // Avoid 'may be used uninitialized' error on 32-bit systems
+ // upstream issue: https://jira.mariadb.org/browse/CONC-725
+ u.a[1] = 0;
err= getcontext(&c->spawned_context);
if (err)

View File

@@ -0,0 +1,28 @@
From b10b76e5a2b983d86bd487873608abce8e0d507b Mon Sep 17 00:00:00 2001
From: Michal Schorm <mschorm@redhat.com>
Date: Wed, 12 Feb 2025 15:17:39 +0100
Subject: [PATCH] Fix compilation with GCC 15
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
| In file included from /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/plugins/auth/dialog.c:23:
| /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/include/ma_global.h:687:25: error: bool cannot be defined via typedef
| 687 | typedef char bool; /* Ordinary boolean values 0 1 */
| | ^~~~
| /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/include/ma_global.h:687:25: note: bool is a keyword with -std=c23 onwards
---
include/ma_global.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/include/ma_global.h
+++ b/include/ma_global.h
@@ -683,7 +683,7 @@ typedef unsigned long size_s; /* Size of
typedef int myf; /* Type of MyFlags in my_funcs */
typedef char my_bool; /* Small bool */
typedef unsigned long long my_ulonglong;
-#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus))
+#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) && (__STDC_VERSION__ < 202300L)
typedef char bool; /* Ordinary boolean values 0 1 */
#endif
/* Macros for converting *constants* to the right type */