Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
None
-
None
Description
server-10.8/libmariadb/plugins/compress/c_zstd.c:37:28: error: redefinition of typedef 'ZSTD_CCtx' is a C11 feature [-Werror,-Wtypedef-redefinition]
|
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
|
^
|
/usr/local/include/zstd.h:200:28: note: previous definition is here
|
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
|
^
|
server-10.8/libmariadb/plugins/compress/c_zstd.c:38:28: error: redefinition of typedef 'ZSTD_DCtx' is a C11 feature [-Werror,-Wtypedef-redefinition]
|
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
|
^
|
/usr/local/include/zstd.h:223:28: note: previous definition is here
|
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
|
^
|
2 errors generated.
|
Running make with the option VERBOSE=1 shows that compiler is invoked with the option -std=gnu99 that is the reason of the above compilation failure.
For some reason, I am unable to compile libmariadb with Zstd compression when building MariaDB Server 10.8. I am also unable to repeat this when configuring and building Connector/C directly.
On a quick look, the following should fix this:
diff --git a/plugins/compress/c_zstd.c b/plugins/compress/c_zstd.c
index e50898e..9a725f7 100644
--- a/plugins/compress/c_zstd.c
+++ b/plugins/compress/c_zstd.c
@@ -34,9 +34,6 @@
#define ZSTD_CLEVEL_DEFAULT 3
#endif
-typedef struct ZSTD_CCtx_s ZSTD_CCtx;
-typedef struct ZSTD_DCtx_s ZSTD_DCtx;
-
static void ma_free_ctx(ma_compress_ctx *ctx)
{
After those lines, there are no references to any of those data type names. The data members compress_ctx and decompress_ctx of the anonymous struct that the type alias ma_compress_ctx refers to are of type void*. So, I think that the above patch should fix this.
georg, as the maintainer of the component, please fix this.