diff --git a/xz-5.2.5-enable_CET.patch b/xz-5.2.5-enable_CET.patch new file mode 100644 index 0000000..e0b3265 --- /dev/null +++ b/xz-5.2.5-enable_CET.patch @@ -0,0 +1,70 @@ +From: H.J. Lu +Date: Wed, 23 Dec 2020 15:49:04 +0100 (06:49 -0800) +Subject: [PATCH] liblzma: Enable Intel CET in x86 CRC assembly codes + +When Intel CET is enabled, we need to include in assembly codes +to mark Intel CET support and add _CET_ENDBR to indirect jump targets. + +Tested on Intel Tiger Lake under CET enabled Linux. +--- + src/liblzma/check/crc32_x86.S | 9 +++++++++ + src/liblzma/check/crc64_x86.S | 9 +++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/src/liblzma/check/crc32_x86.S b/src/liblzma/check/crc32_x86.S +index 67f68a4..e3745e6 100644 +--- a/src/liblzma/check/crc32_x86.S ++++ b/src/liblzma/check/crc32_x86.S +@@ -51,6 +51,14 @@ init_table(void) + * extern uint32_t lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc); + */ + ++/* When Intel CET is enabled, include in assembly code to mark ++ Intel CET support. */ ++#ifdef __CET__ ++# include ++#else ++# define _CET_ENDBR ++#endif ++ + /* + * On some systems, the functions need to be prefixed. The prefix is + * usually an underscore. +@@ -83,6 +91,7 @@ init_table(void) + + ALIGN(4, 16) + LZMA_CRC32: ++ _CET_ENDBR + /* + * Register usage: + * %eax crc +diff --git a/src/liblzma/check/crc64_x86.S b/src/liblzma/check/crc64_x86.S +index f5bb84b..7ee08f6 100644 +--- a/src/liblzma/check/crc64_x86.S ++++ b/src/liblzma/check/crc64_x86.S +@@ -41,6 +41,14 @@ init_table(void) + * extern uint64_t lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc); + */ + ++/* When Intel CET is enabled, include in assembly code to mark ++ Intel CET support. */ ++#ifdef __CET__ ++# include ++#else ++# define _CET_ENDBR ++#endif ++ + /* + * On some systems, the functions need to be prefixed. The prefix is + * usually an underscore. +@@ -73,6 +81,7 @@ init_table(void) + + ALIGN(4, 16) + LZMA_CRC64: ++ _CET_ENDBR + /* + * Register usage: + * %eax crc LSB +-- +2.26.0 + diff --git a/xz.spec b/xz.spec index 6ec0319..0d99de1 100644 --- a/xz.spec +++ b/xz.spec @@ -4,7 +4,7 @@ Summary: LZMA compression utilities Name: xz Version: 5.2.5 -Release: 3%{?dist} +Release: 4%{?dist} # Scripts xz{grep,diff,less,more} and symlinks (copied from gzip) are # GPLv2+, binaries are Public Domain (linked against LGPL getopt_long but its @@ -16,6 +16,8 @@ Source0: http://tukaani.org/%{name}/%{name}-%{version}.tar.xz Source100: colorxzgrep.sh Source101: colorxzgrep.csh +Patch1: xz-5.2.5-enable_CET.patch + URL: http://tukaani.org/%{name}/ Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -80,7 +82,7 @@ commands that deal with the older LZMA format. %prep -%autosetup +%autosetup -p1 %build @@ -157,6 +159,9 @@ LD_LIBRARY_PATH=$PWD/src/liblzma/.libs make check %changelog +* Mon Mar 30 2020 Ondrej Dubaj - 5.2.5-4 +- Enabled CET for i686 (#1910368) + * Wed Jul 29 2020 Fedora Release Engineering - 5.2.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild