mirror of
https://git.tukaani.org/xz.git
synced 2025-02-17 14:08:12 +00:00
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 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. (This commit was contributed under 0BSD but the author confirmed that it is fine to backport it to the public domain branches. See https://github.com/tukaani-project/xz/pull/90#issuecomment-2100185936 and the next two messages.) (cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31)
This commit is contained in:
parent
78a015e753
commit
65ac20807c
@ -218,12 +218,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;
|
||||
|
||||
|
@ -26,6 +26,9 @@ decode_buffer(lzma_delta_coder *coder, uint8_t *buffer, size_t size)
|
||||
}
|
||||
|
||||
|
||||
#ifdef __NVCOMPILER
|
||||
# pragma routine novector
|
||||
#endif
|
||||
static lzma_ret
|
||||
delta_decode(void *coder_ptr, const lzma_allocator *allocator,
|
||||
const uint8_t *restrict in, size_t *restrict in_pos,
|
||||
|
Loading…
x
Reference in New Issue
Block a user