buildroot/package/assimp/0002-contrib-zip-fix-ssize_t-typedef-mismatch-for-musl-co.patch
Peter Seiderer b529a582ba package/assimp: fix musl zlib/zip related compile failure
As assimp fails to use system provided zlib/zip (and is picky
about the provided versions) use assimp contributed one
and backport one part of upstream patch to fix musl compile.

Fixes:

  http://autobuild.buildroot.net/results/4b373ae7d8fd40efe3e2592f94f2d769d6a77669

  In file included from .../assimp-5.0.1/code/3MF/D3MFExporter.cpp:61:
  .../assimp-5.0.1/contrib/zip/src/zip.h:30:15: error: conflicting declaration 'typedef long int ssize_t'
   typedef long  ssize_t;  /* byte count or error */
                 ^~~~~~~

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-04-10 22:45:24 +02:00

51 lines
1.5 KiB
Diff

From 3fef857a570d1ef2c96401358fe8e239625b48c9 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Fri, 10 Apr 2020 18:11:50 +0200
Subject: [PATCH] contrib/zip: fix ssize_t typedef mismatch for musl compile
Musl uses defines __DEFINED_ssize_t to indicate ssize_t
availability. So backport this part of upstream commit [1]
to fixl musl compile.
https://github.com/assimp/assimp/commit/f78446b14aff46db2ef27d062a275b6a01fd68b1
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
contrib/zip/src/zip.h | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h
index 5f39df50..4672eb3e 100644
--- a/contrib/zip/src/zip.h
+++ b/contrib/zip/src/zip.h
@@ -20,8 +20,9 @@ extern "C" {
#endif
#if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \
- !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined)
-#define _SSIZE_T
+ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \
+ !defined(_SSIZE_T) && !defined(_SSIZE_T_)
+
// 64-bit Windows is the only mainstream platform
// where sizeof(long) != sizeof(void*)
#ifdef _WIN64
@@ -29,6 +30,14 @@ typedef long long ssize_t; /* byte count or error */
#else
typedef long ssize_t; /* byte count or error */
#endif
+
+#define _SSIZE_T_DEFINED
+#define _SSIZE_T_DEFINED_
+#define __DEFINED_ssize_t
+#define __ssize_t_defined
+#define _SSIZE_T
+#define _SSIZE_T_
+
#endif
#ifndef MAX_PATH
--
2.26.0