From cfac7b69b68de4577a39577773946f43837225fae24b23b00f6d7020bcef21cf Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 30 Apr 2024 22:53:58 +0000 Subject: [PATCH] - Add lzma-simd.patch to fix compiler error on old gcc OBS-URL: https://build.opensuse.org/package/show/Archiving/lzma-sdk?expand=0&rev=32 --- lzma-sdk.changes | 1 + lzma-sdk.spec | 3 ++- lzma-simd.patch | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 lzma-simd.patch diff --git a/lzma-sdk.changes b/lzma-sdk.changes index d52b98a..0b1a157 100644 --- a/lzma-sdk.changes +++ b/lzma-sdk.changes @@ -4,6 +4,7 @@ Tue Apr 30 10:42:48 UTC 2024 - Jan Engelhardt - Update to release 23.01 * New filter for ARM64 executables. BCJ2 filter was improved for better compression ratio. Some bugs were fixed. +- Add lzma-simd.patch to fix compiler error on old gcc ------------------------------------------------------------------- Wed Mar 15 14:40:12 UTC 2023 - Martin Pluskal diff --git a/lzma-sdk.spec b/lzma-sdk.spec index 8ef2224..6e038f5 100644 --- a/lzma-sdk.spec +++ b/lzma-sdk.spec @@ -31,6 +31,7 @@ Source0: https://www.7-zip.org/a/lzma%_sver.7z Source1: lzma-sdk-LICENSE.fedora Source2: baselibs.conf Patch1: lzma-sdk-shlib.patch +Patch2: lzma-simd.patch BuildRequires: automake BuildRequires: dos2unix BuildRequires: fdupes @@ -68,7 +69,7 @@ Library for encoding/decoding LZMA streams, using the 7-Zip library implementation. %prep -%autosetup -c -n lzma%_sver +%autosetup -c -n lzma%_sver -p1 perl -i -pe 's{AC_INIT.*}{AC_INIT([lzma-sdk], [%version])}' configure.ac dos2unix DOC/*.txt install -p -m 0644 %SOURCE1 . diff --git a/lzma-simd.patch b/lzma-simd.patch new file mode 100644 index 0000000..7aaa8e6 --- /dev/null +++ b/lzma-simd.patch @@ -0,0 +1,25 @@ +From: Jan Engelhardt +Date: 2024-05-01 00:14:04.625759204 +0200 +Fix build failures involving SIMD code + +Fix build failure on Leap 15.6/gcc-7 amd64: +[ 31s] C/SwapBytes.c:312:7: error: incompatible types when initializing type +'__m256i {aka const __vector(4) long long int}' using type 'int' + +--- + C/SwapBytes.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: 23/C/SwapBytes.c +=================================================================== +--- a/C/SwapBytes.c ++++ b/C/SwapBytes.c +@@ -22,7 +22,7 @@ typedef UInt32 CSwapUInt32; + // #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1900) + #if defined(__clang__) && (__clang_major__ >= 4) \ + || defined(Z7_GCC_VERSION) && (Z7_GCC_VERSION >= 40701) +- #define k_SwapBytes_Mode_MAX k_SwapBytes_Mode_AVX2 ++ #define k_SwapBytes_Mode_MAX k_SwapBytes_Mode_SSE2 + #define SWAP_ATTRIB_SSE2 __attribute__((__target__("sse2"))) + #define SWAP_ATTRIB_SSSE3 __attribute__((__target__("ssse3"))) + #define SWAP_ATTRIB_AVX2 __attribute__((__target__("avx2")))