From ac2b3c339ee47497365066754e9937aba2cca700 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Mon, 25 Nov 2024 14:04:12 +0100 Subject: [PATCH] GCC 15 trunk now defaults to C23, where bool is a keyword ...so the existing C code started to fail with > In file included from workdir/UnpackedTarball/mariadb-connector-c/libmariadb/ma_alloc.c:20: > workdir/UnpackedTarball/mariadb-connector-c/include/ma_global.h:687:25: error: two or more data types in declaration specifiers > 687 | typedef char bool; /* Ordinary boolean values 0 1 */ > | ^~~~ (And the !defined(HAVE_BOOL) there, always being true, apparently started to get in the way now and thus needed to be removed, whatever its original purpose.) Change-Id: I781458d643e01a7199e19a178da3a32520d16b34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177260 Reviewed-by: Stephan Bergmann Tested-by: Jenkins --- .../UnpackedTarball_mariadb-connector-c.mk | 1 + external/mariadb-connector-c/c23.patch.0 | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 external/mariadb-connector-c/c23.patch.0 diff --git a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk index dbce7aec4bdd..3ba6bfef583f 100644 --- a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk +++ b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk @@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,mariadb-connector-c,1)) $(eval $(call gb_UnpackedTarball_add_patches,mariadb-connector-c,\ external/mariadb-connector-c/clang-cl.patch.0 \ + external/mariadb-connector-c/c23.patch.0 \ )) # TODO are any "plugins" needed? diff --git a/external/mariadb-connector-c/c23.patch.0 b/external/mariadb-connector-c/c23.patch.0 new file mode 100644 index 000000000000..d19d6be4cdae --- /dev/null +++ b/external/mariadb-connector-c/c23.patch.0 @@ -0,0 +1,11 @@ +--- include/ma_global.h ++++ include/ma_global.h +@@ -683,7 +683,7 @@ + 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(__cplusplus) || __STDC_VERSION__ >= 202311L) + typedef char bool; /* Ordinary boolean values 0 1 */ + #endif + /* Macros for converting *constants* to the right type */