From ac5377e03146d1e1f2a48bbbfb842070d2f0e1ae Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 12 Jul 2025 21:05:56 -0700 Subject: [PATCH] libmariadb: update to 3.4.5 Backport upstream patch fixing compilation with GCC 15. Remove upstreamed patch. Signed-off-by: Rosen Penev --- libs/libmariadb/Makefile | 4 +-- .../patches/010-link-to-libucontext.patch | 34 ++++++++----------- ...020-fix-ucontext-maybe-uninitialized.patch | 12 ------- libs/libmariadb/patches/020-gcc15.patch | 28 +++++++++++++++ 4 files changed, 45 insertions(+), 33 deletions(-) delete mode 100644 libs/libmariadb/patches/020-fix-ucontext-maybe-uninitialized.patch create mode 100644 libs/libmariadb/patches/020-gcc15.patch diff --git a/libs/libmariadb/Makefile b/libs/libmariadb/Makefile index 1ecb2c139e..3c1ff66336 100644 --- a/libs/libmariadb/Makefile +++ b/libs/libmariadb/Makefile @@ -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 diff --git a/libs/libmariadb/patches/010-link-to-libucontext.patch b/libs/libmariadb/patches/010-link-to-libucontext.patch index ebde0c1a40..736a373f7e 100644 --- a/libs/libmariadb/patches/010-link-to-libucontext.patch +++ b/libs/libmariadb/patches/010-link-to-libucontext.patch @@ -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 index d350e7a337..0000000000 --- a/libs/libmariadb/patches/020-fix-ucontext-maybe-uninitialized.patch +++ /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 index 0000000000..8580b31298 --- /dev/null +++ b/libs/libmariadb/patches/020-gcc15.patch @@ -0,0 +1,28 @@ +From b10b76e5a2b983d86bd487873608abce8e0d507b Mon Sep 17 00:00:00 2001 +From: Michal Schorm +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 */