From 7de966a02b57eb44b77e5b7266e49c324eaad9f6 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Wed, 13 Mar 2024 13:07:13 +0100 Subject: [PATCH] liblzma: Fix building with NVHPC (NVIDIA HPC SDK). NVHPC compiler has several issues that make it impossible to build liblzma: - 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) (cherry picked from commit 65ac20807c1303e80fb8fc28ec810d740078e328) --- src/liblzma/delta/delta_decoder.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/liblzma/delta/delta_decoder.c b/src/liblzma/delta/delta_decoder.c index 77cf65cc..3953bc4a 100644 --- a/src/liblzma/delta/delta_decoder.c +++ b/src/liblzma/delta/delta_decoder.c @@ -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,