libmariadb: update to 3.4.5
authorRosen Penev <[email protected]>
Sun, 13 Jul 2025 04:05:56 +0000 (21:05 -0700)
committerTianling Shen <[email protected]>
Fri, 18 Jul 2025 14:19:22 +0000 (22:19 +0800)
Backport upstream patch fixing compilation with GCC 15.

Remove upstreamed patch.

Signed-off-by: Rosen Penev <[email protected]>
libs/libmariadb/Makefile
libs/libmariadb/patches/010-link-to-libucontext.patch
libs/libmariadb/patches/020-fix-ucontext-maybe-uninitialized.patch [deleted file]
libs/libmariadb/patches/020-gcc15.patch [new file with mode: 0644]

index 1ecb2c139e94929fb02203a1aba0c06370b3fbcd..3c1ff66336e9896ef0dc6dabbd31d6b9f74503fe 100644 (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 <[email protected]>
index ebde0c1a4065cd8f3df451dc09fffe23f4276e04..736a373f7eedbdede71d1056cfb613a3db21599f 100644 (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
diff --git a/libs/libmariadb/patches/020-fix-ucontext-maybe-uninitialized.patch b/libs/libmariadb/patches/020-fix-ucontext-maybe-uninitialized.patch
deleted file mode 100644 (file)
index d350e7a..0000000
+++ /dev/null
@@ -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)
diff --git a/libs/libmariadb/patches/020-gcc15.patch b/libs/libmariadb/patches/020-gcc15.patch
new file mode 100644 (file)
index 0000000..8580b31
--- /dev/null
@@ -0,0 +1,28 @@
+From b10b76e5a2b983d86bd487873608abce8e0d507b Mon Sep 17 00:00:00 2001
+From: Michal Schorm <[email protected]>
+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 */