]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix size_t and ssize_t defaults on Borland
authorBrad King <brad.king@kitware.com>
Wed, 11 Nov 2009 14:20:14 +0000 (09:20 -0500)
committerBrad King <brad.king@kitware.com>
Wed, 11 Nov 2009 14:20:14 +0000 (09:20 -0500)
We use more generic decision tests to select these types.  The new tests
choose the proper types for Borland while preserving reasonable defaults
for other compilers.

SVN-Revision: 1641

CMakeLists.txt
libarchive/archive.h

index ea50289d5c3d55daabd724b1650442ac1300a06c..3a08bb08e650fd096af3885d448c94162725c94b 100644 (file)
@@ -527,20 +527,20 @@ ENDIF(NOT HAVE_OFF_T)
 #
 CHECK_TYPE_SIZE(size_t      SIZE_T)
 IF(NOT HAVE_SIZE_T)
-  SET(size_t "unsigned int")
+  IF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(size_t "uint64_t")
+  ELSE("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(size_t   "uint32_t")
+  ENDIF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
 ENDIF(NOT HAVE_SIZE_T)
 #
 CHECK_TYPE_SIZE(ssize_t     SSIZE_T)
 IF(NOT HAVE_SSIZE_T)
-  IF(MSVC)
-    IF(CMAKE_CL_64)
-      SET(ssize_t "__int64")
-    ELSE(CMAKE_CL_64)
-      SET(ssize_t   "signed long")
-    ENDIF(CMAKE_CL_64)
-  ELSE(MSVC)
-      SET(ssize_t   "int")
-  ENDIF(MSVC)
+  IF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(ssize_t "int64_t")
+  ELSE("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(ssize_t "long")
+  ENDIF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
 ENDIF(NOT HAVE_SSIZE_T)
 #
 CHECK_TYPE_SIZE(uid_t       UID_T)
index 1942188f202000ae7413ad908b7b8b8e661a231c..6bd1b34b277ad4134cb56eb6c7f7e3c8ba80d603 100644 (file)
@@ -52,7 +52,9 @@
 /* These should match the types used in 'struct stat' */
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #define        __LA_INT64_T    __int64
-# if   defined(_WIN64)
+# if defined(_SSIZE_T_DEFINED)
+#  define      __LA_SSIZE_T    ssize_t
+# elif defined(_WIN64)
 #  define      __LA_SSIZE_T    __int64
 # else
 #  define      __LA_SSIZE_T    long