Commit Graph

19 Commits

Author SHA1 Message Date
Brad King
d8359713e5 liblzma: Assume 'string.h' exists 2020-05-25 15:19:42 -04:00
Brad King
12e7bfcbf4 liblzma: Use KWIML to get fixed-size integer types 2020-05-25 15:16:56 -04:00
Brad King
3cd5ed7cb1 liblzma: Drop unused code providing uintmax_t and intmax_t
The lzma library code we use within CMake does not need these.
2020-05-25 15:06:34 -04:00
Brad King
1699f5c231 Utilities: Suppress warnings in third-party code when using XLClang 2019-02-25 08:26:17 -05:00
Brad King
214fcefa52 Remove now-unused code once used for MIPSpro on IRIX
In commit beb991110d (Remove now-unused code once used on IRIX,
2019-01-11, v3.14.0-rc1~167^2) we removed remnants of IRIX support.
Also remove remnants of MIPSpro compiler support.
2019-02-21 11:12:51 -05:00
Brad King
9f77124ea8 liblzma: Drop checks for inline and restrict keywords
We now require the compiler to support these, except for MSVC where
upstream liblzma already has special cases (in `common/sysdefs.h`).
2018-08-06 10:25:46 -04:00
Brad King
83215720fb liblzma: Name sizeof size_t macro consistently with upstream 2018-08-06 10:23:01 -04:00
Brad King
fb6142ab2f liblzma: Fix HAVE_INLINE and HAVE___INLINE checks
The checks fail even on compilers that support the keywords because
the linkage is broken:

    src.c:...: undefined reference to 'test'

At the actual use sites we use `static inline` instead of just `inline`,
so perform the check this way too to fix the linkage.
2017-05-17 15:00:16 -04:00
Daniel Pfeifer
f05f5b01d0 cmliblzma: always build as static library 2016-06-28 23:05:37 +02:00
Brad King
e5d336beb2 liblzma: Disable GNU 3.3 compiler optimizations
The GNU 3.3 optimizer causes bad behavior in liblzma, so disable it.
2015-04-08 13:52:02 -04:00
Brad King
a2df4a3f76 liblzma: Disable XL compiler optimizations altogether
Revert commit 82c51a8a (liblzma: Disable XL compiler optimizations in
one source to avoid crash, 2015-04-02) and instead add a compiler flag
to disable optimizations in every source of liblzma.  Somehow the XL
compiler optimizations create incorrect behavior in liblzma and lead
to crashes or truncated output during compression.
2015-04-08 13:08:53 -04:00
Chuck Atkins
996f822930 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.
2014-11-03 14:37:12 -05:00
Brad King
95d84f76d9 Merge topic 'cmake-cmp0054-warnings'
29c3edb8 Avoid if() quoted auto-dereference
2014-10-21 15:08:07 -04:00
Ben Boeckel
29c3edb87a Avoid if() quoted auto-dereference
When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly
dereference or quote the variable. We want if() to auto-dereference the
variable and not its value. Also replace MATCHES with STREQUAL where
equivalent.
2014-10-20 11:49:16 -04:00
Stephen Kelly
2db55ffa56 Remove borland workarounds.
CMake 3.0 is the last release to require to be able to build with
Borland.
2014-10-15 23:16:44 +02:00
Chuck Atkins
c16d8c7f77 liblzma: Added a missing config check for _Bool
This fixes a current build problem for liblzma on Solaris 10, SPARC,
and the Solaris Studio compiler.
2014-09-02 10:34:47 -04:00
Chuck Atkins
2dd17a546f liblzma: Fix compilation with PGI compiler
- sha265.c is using some C99 specific features, in particular static
array dimensions in a function parameter array (see section 6.7.5-7
of the C99 spec).  A #ifndef check was in place to prevent compilation
under MSVC but it actually needed to check for C99 compliance instead.
Even still, the C99 code fails on a few compilers (PGI being one) so for
compatibility reasons, the C99 version of the function declaration is
removed entirely, leaving only the C89 version.

- CHECK_SYMBOL_EXISTS is used to determine the presense of bswap
functions from byteswap.h.  Most compilers re-dedefine the bswap_N
functions as a __bswap_N function implemented by the compiler.  Since
bswap_N is usually defined as a macro then it's mere presence passes
the check.  Some versions of the PGI compiler though have shipped
broken headers for byteswap.h, in particular 11.3 for x64 linux
provides byteswap.h but is missing an associated bits/byteswap.h which
causes some of the bswap_N macros to be defined but broken and unusable.
The bswap_N checks have been converted to CHECK_SOURCE_COMPILES to
ensure that the bswap_N calls are actually usable and not just merely
defined.
2014-08-04 10:12:51 -04:00
Brad King
90e7a4d41f liblzma: Disable warnings to avoid changing 3rd party code 2014-07-29 08:45:36 -04:00
Daniel Pfeifer
b2a07ca49c liblzma: Add CMake build system
Modify sources just enough to build without the full xz common
directory.
2014-07-23 10:34:55 -04:00