summaryrefslogtreecommitdiff
path: root/Utilities/cmliblzma
Commit message (Collapse)AuthorAgeFilesLines
* Utilities: Activate POSIX APIs even without compiler extensionsBrad King2022-06-041-0/+8
| | | | | | | | | | | Compile some third-party libraries with preprocessor definitions that activate POSIX APIs even when compiler extensions are not enabled. We already do this in libuv, inherited from the upstream buildsystem. This extends commit f034b0f663 (CMake compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2). Issue: #20454
* Utilities: Suppress warnings in third-party code with IBMClangAaron Liu2022-01-271-1/+1
|
* LCC: Add dedicated support for MCST LCC compilermakise-homura2021-10-151-2/+2
| | | | | | | | | | | | | | | | | | | | | Divert LCC compiler as a new one, instead of treating it as GNU. Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been passing checks for GNU compilers, so it has been identified as GNU. Now, with intent of seriously upstreaming its support, it has been added as a separate LCC compiler, and its version displays not a supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead of GNU 7.3.0). This commit adds its support for detection, and also converts basically every check like 'is this compiler GNU?' to 'is this compiler GNU or LCC?'. The only places where this check is untouched, is where it regards other platforms where LCC is unavailable (primarily non-Linux), and where it REALLY differs from GNU compiler. Note: this transition may break software that are already ported to Elbrus, but hardly relies that LCC will be detected as GNU; still such software is not known.
* liblzma: Enable multi threaded stream encoding supportNils Gladitz2021-04-222-0/+13
|
* Merge branch 'upstream-liblzma' into lzma-threadsBrad King2021-04-2253-268/+1205
| | | | | * upstream-liblzma: liblzma 2020-03-17 (2327a461)
* Utilities: Suppress warnings in third-party code with NVHPCBrad King2021-04-201-1/+1
|
* Utilities: Suppress warnings in third-party code when using IntelLLVMBrad King2021-01-281-1/+1
|
* liblzma: Map fixed-size integer types from KWIML as typedefsBrad King2020-06-031-9/+9
| | | | | | | | | Refactoring in commit 12e7bfcbf4 (liblzma: Use KWIML to get fixed-size integer types, 2020-05-25) accidentally changed the method of defining `int#_t` types from `typedef` to `#define`. Change it back to `typedef`. Reported-by: Rolf Eike Beer <eike@sf-mail.de>
* liblzma: Assume 'string.h' existsBrad King2020-05-251-1/+1
|
* liblzma: Use KWIML to get fixed-size integer typesBrad King2020-05-252-187/+25
|
* liblzma: Drop unused code providing uintmax_t and intmax_tBrad King2020-05-252-16/+0
| | | | The lzma library code we use within CMake does not need these.
* Utilities: Suppress warnings in third-party code when using XLClangBrad King2019-02-251-1/+1
|
* Remove now-unused code once used for MIPSpro on IRIXBrad King2019-02-211-1/+1
| | | | | | 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.
* liblzma: fix undefined shift resultKyle Edwards2019-01-141-1/+1
| | | | | When a 32-bit integer is shifted left by 32 bits, the result is undefined. Shift a 64-bit integer instead.
* liblzma: Suppress MSVC warning parameter difference warningBrad King2018-08-061-0/+1
| | | | | | Some `.c` sources add `restrict` to their pointer types to tell the optimizer that there is no aliasing. These do not appear in the corresponding `.h` declarations so MSVC warns.
* liblzma: Drop checks for inline and restrict keywordsBrad King2018-08-062-40/+0
| | | | | We now require the compiler to support these, except for MSVC where upstream liblzma already has special cases (in `common/sysdefs.h`).
* Merge branch 'upstream-liblzma' into update-liblzmaBrad King2018-08-0696-1047/+3477
| | | | | * upstream-liblzma: liblzma 2018-04-29 (b5be61cc)
* liblzma: Name sizeof size_t macro consistently with upstreamBrad King2018-08-063-4/+4
|
* liblzma: Revert "Port from C99 to C89/90"Brad King2018-08-0661-1075/+700
| | | | | | Revert commit v3.1.0-rc1~255^2~5 (liblzma: Port from C99 to C89/90, 2014-07-13). We now compile as C99 or above except on MSVC where we will use another approach.
* liblzma: Revert "Avoid defining a 'restrict' macro"Brad King2018-08-0631-103/+101
| | | | | | Revert commit v3.1.0-rc1~255^2~2 (liblzma: Avoid defining a 'restrict' macro, 2014-07-24). We will use another approach to deal with the 'restrict' keyword.
* liblzma: Fix HAVE_INLINE and HAVE___INLINE checksBrad King2017-05-171-2/+2
| | | | | | | | | | 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.
* Merge branch 'upstream-liblzma' into update-liblzmaBrad King2016-06-295-7/+11
| | | | | * upstream-liblzma: liblzma 2014-12-21 (265e5ffb)
* liblzma: Remove CMake-specific READMEBrad King2016-06-291-66/+0
| | | | | | We will now manage the liblzma source tree updates using the `Utilities/Scripts/update-liblzma.bash` script. Drop the README that covered the old method.
* cmliblzma: always build as static libraryDaniel Pfeifer2016-06-281-5/+1
|
* liblzma: Avoid possible overflow on signed left shiftBrad King2016-05-251-1/+1
| | | | Use an unsigned value to produce the needed mask.
* liblzma: Disable GNU 3.3 compiler optimizationsBrad King2015-04-081-0/+4
| | | | The GNU 3.3 optimizer causes bad behavior in liblzma, so disable it.
* liblzma: Disable XL compiler optimizations altogetherBrad King2015-04-082-3/+6
| | | | | | | | 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.
* liblzma: Disable XL compiler optimizations in one source to avoid crashBrad King2015-04-021-0/+3
| | | | | | Somehow optimizations of lzma_lzma_optimum_normal by the IBM XL C compiler cause it to crash. Simply disable optimizations of this source file with a pragma.
* liblzma: Use unaligned access only on Intel and PowerPC archsBrad King2015-04-011-1/+7
|
* liblzma: fix build on platforms with no SIZE_MAX defined.Chuck Atkins2014-11-033-5/+4
| | | | | | | | | 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.
* Merge topic 'cmake-cmp0054-warnings'Brad King2014-10-211-2/+2
|\ | | | | | | | | 29c3edb8 Avoid if() quoted auto-dereference
| * Avoid if() quoted auto-dereferenceBen Boeckel2014-10-201-2/+2
| | | | | | | | | | | | | | 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.
* | Remove borland workarounds.Stephen Kelly2014-10-151-2/+0
|/ | | | | CMake 3.0 is the last release to require to be able to build with Borland.
* liblzma: Added a missing config check for _BoolChuck Atkins2014-09-021-1/+5
| | | | | This fixes a current build problem for liblzma on Solaris 10, SPARC, and the Solaris Studio compiler.
* liblzma: Fix compilation with PGI compilerChuck Atkins2014-08-042-7/+9
| | | | | | | | | | | | | | | | | | | | | | - 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.
* liblzma: Avoid defining a 'restrict' macroBrad King2014-07-2931-101/+103
| | | | | | | | | | Any "#define restrict ..." line may conflict with MSVC header files that use "__declspec(restrict)". Define our own LZMA_RESTRICT macro in "Utilities/cmliblzma/config.h.in" and transform liblzma code to use it: git grep -lE '\<restrict\>' Utilities/cmliblzma/liblzma | xargs sed -i 's/\<restrict\>/LZMA_RESTRICT/g'
* liblzma: Disable warnings to avoid changing 3rd party codeBrad King2014-07-292-1/+13
|
* liblzma: Port to VS 6, 7.0Daniel Pfeifer2014-07-292-17/+10
| | | | Also remove use of MSVC intrinsic.
* liblzma: Port from C99 to C89/90Daniel Pfeifer2014-07-2961-700/+1080
| | | | | Remove use of designated initializers and declarations of variables after statements. Leave "//" comments as-is for now.
* liblzma: Add CMake build systemDaniel Pfeifer2014-07-237-8/+491
| | | | | Modify sources just enough to build without the full xz common directory.
* liblzma: Remove unused Makefile.* filesBrad King2014-07-239-387/+0
| | | | We will provide our own CMake-based build system.
* liblzma: Add README-CMake.txtBrad King2014-07-231-0/+66
| | | | Describe how to update liblzma from upstream.
* Merge branch 'liblzma-upstream' into add-liblzmaBrad King2014-07-21148-0/+26264
|
* liblzma: Add .gitattributes to ignore whitespace checksBrad King2014-07-211-0/+1
Tell Git not to check whitespace in third-party code.