diff options
author | Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> | 2024-03-13 13:07:13 +0100 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2024-03-15 17:30:50 +0200 |
commit | 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31 (patch) | |
tree | d1a6d0140dddc4fef50ce4ecf125fbcd47e5de9b /src/liblzma/common | |
parent | CMake: Disable symbol versioning on non-glibc Linux. (diff) | |
download | xz-096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31.tar.xz |
liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
NVHPC compiler has several issues that make it impossible to
build liblzma:
- the compiler cannot handle unions that contain pointers that
are not the first members;
- the compiler cannot handle the assembler code in range_decoder.h
(LZMA_RANGE_DECODER_CONFIG has to be set to zero);
- the compiler fails to produce valid code for delta_decode if the
vectorization is enabled, which results in failed tests.
This introduces NVHPC-specific workarounds that address the issues.
Diffstat (limited to 'src/liblzma/common')
-rw-r--r-- | src/liblzma/common/string_conversion.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/liblzma/common/string_conversion.c b/src/liblzma/common/string_conversion.c index 92d9032b..370857f0 100644 --- a/src/liblzma/common/string_conversion.c +++ b/src/liblzma/common/string_conversion.c @@ -217,12 +217,14 @@ typedef struct { uint16_t offset; union { +// NVHPC has problems with unions that contain pointers that are not the first +// members + const name_value_map *map; + struct { uint32_t min; uint32_t max; } range; - - const name_value_map *map; } u; } option_map; |