[cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform
Brad King
brad.king at kitware.com
Fri Sep 16 16:35:29 EDT 2011
On 9/16/2011 3:17 PM, Alan W. Irwin wrote:
> typedef int _ssize_t;
> typedef _ssize_t ssize_t;
>
> in MinGW/include/sys/types.h
>
> is completely avoided or _SSIZE_T_DEFINED is #define'd by
> some other non-MinGW system header on Microsoft Windows.
I installed a fresh MinGW with the most recent mingw-get package
information. It does install gcc 4.6 and does get your error.
Try this patch:
diff --git a/Utilities/cmlibarchive/libarchive/archive.h b/Utilities/cmlibarchive/libarchive/archive.h
index 9b918a8..b2bb829 100644
--- a/Utilities/cmlibarchive/libarchive/archive.h
+++ b/Utilities/cmlibarchive/libarchive/archive.h
@@ -52,7 +52,7 @@
/* These should match the types used in 'struct stat' */
#if defined(_WIN32) && !defined(__CYGWIN__)
#define __LA_INT64_T __int64
-# if defined(_SSIZE_T_DEFINED)
+# if defined(_SSIZE_T_DEFINED) || (defined(_SSIZE_T_) && !defined(_NO_OLDNAMES))
# define __LA_SSIZE_T ssize_t
# elif defined(_WIN64)
> Another possibility is to clean up what I believe is the cause of this
> mess which is the use of fixed types rather than macro-defined types
> in Utilities/cmlibarchive/libarchive/*.c code which are potentially
> inconsistent (as in this case) with macro-defined types in
> Utilities/cmlibarchive/libarchive/archive.h.
I think upstream libarchive is trying to change everything to
"int64_t" for libarchive 3.
-Brad
More information about the cmake-developers
mailing list