From 996f822930b02fbf6f7b1bc2fa21ad52b10ebdcd Mon Sep 17 00:00:00 2001 From: Chuck Atkins Date: Mon, 3 Nov 2014 14:37:12 -0500 Subject: [PATCH] liblzma: fix build on platforms with no SIZE_MAX defined. Some systems don't define a SIZE_MAX (older versions of HP-UX with aCC). The logic was already in place to account for this condition but SIZEOF_SIZE_T was not getting cmoputed at configure time to allow it to function. This computes sizeof(size_t) at configure time to allow the appropriate logic to work. It also changes SIZEOF_SIZE_T to SIZE_OF_SIZE_T for consistency. --- Utilities/cmliblzma/CMakeLists.txt | 1 + Utilities/cmliblzma/common/sysdefs.h | 4 ++-- Utilities/cmliblzma/config.h.in | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Utilities/cmliblzma/CMakeLists.txt b/Utilities/cmliblzma/CMakeLists.txt index c03147fbb..d991438d6 100644 --- a/Utilities/cmliblzma/CMakeLists.txt +++ b/Utilities/cmliblzma/CMakeLists.txt @@ -95,6 +95,7 @@ CHECK_TYPE_SIZE("unsigned short" SIZE_OF_UNSIGNED_SHORT) CHECK_TYPE_SIZE("unsigned" SIZE_OF_UNSIGNED) CHECK_TYPE_SIZE("unsigned long" SIZE_OF_UNSIGNED_LONG) CHECK_TYPE_SIZE("unsigned long long" SIZE_OF_UNSIGNED_LONG_LONG) +CHECK_TYPE_SIZE("size_t" SIZE_OF_SIZE_T) CHECK_TYPE_SIZE("__int64" __INT64) CHECK_TYPE_SIZE("unsigned __int64" UNSIGNED___INT64) diff --git a/Utilities/cmliblzma/common/sysdefs.h b/Utilities/cmliblzma/common/sysdefs.h index c84f01c22..a6edea8b0 100644 --- a/Utilities/cmliblzma/common/sysdefs.h +++ b/Utilities/cmliblzma/common/sysdefs.h @@ -124,9 +124,9 @@ // The code currently assumes that size_t is either 32-bit or 64-bit. #ifndef SIZE_MAX -# if SIZEOF_SIZE_T == 4 +# if SIZE_OF_SIZE_T == 4 # define SIZE_MAX UINT32_MAX -# elif SIZEOF_SIZE_T == 8 +# elif SIZE_OF_SIZE_T == 8 # define SIZE_MAX UINT64_MAX # else # error size_t is not 32-bit or 64-bit diff --git a/Utilities/cmliblzma/config.h.in b/Utilities/cmliblzma/config.h.in index b197f2786..017c435e1 100644 --- a/Utilities/cmliblzma/config.h.in +++ b/Utilities/cmliblzma/config.h.in @@ -29,6 +29,7 @@ @SIZE_OF_UNSIGNED_CODE@ @SIZE_OF_UNSIGNED_LONG_CODE@ @SIZE_OF_UNSIGNED_LONG_LONG_CODE@ +@SIZE_OF_SIZE_T_CODE@ /* * If we lack int64_t, define it to the first of __int64, int, long, and long long @@ -277,9 +278,6 @@ typedef uint64_t uintmax_t; /* Define to 1 if the system has the type `_Bool'. */ #cmakedefine HAVE__BOOL 1 -/* The size of `size_t', as computed by sizeof. */ -#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@ - /* Define to 1 if the system supports fast unaligned access to 16-bit and 32-bit integers. */ #define TUKLIB_FAST_UNALIGNED_ACCESS 1