diff --git a/0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch b/0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch new file mode 100644 index 0000000..7b3e34b --- /dev/null +++ b/0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch @@ -0,0 +1,27 @@ +From 1999108aeb1f6f93a19ea7bb64c6ae8b87d1b264 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Thu, 20 Jan 2022 05:33:13 -0800 +Subject: [PATCH] CET: Add CET marker to crc32c_intel_fast_zero_asm.s + +Add .note.gnu.property section to crc32c_intel_fast_zero_asm.s to mark +for IBT and SHSTK compatibility. +--- + src/common/crc32c_intel_fast_zero_asm.s | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/common/crc32c_intel_fast_zero_asm.s b/src/common/crc32c_intel_fast_zero_asm.s +index 216ecf639f3..2e291d858f3 100644 +--- a/src/common/crc32c_intel_fast_zero_asm.s ++++ b/src/common/crc32c_intel_fast_zero_asm.s +@@ -654,4 +654,8 @@ slversion crc32_iscsi_zero_00, 00, 02, 0014 + %ifidn __OUTPUT_FORMAT__, elf64 + ; inform linker that this doesn't require executable stack + section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 + %endif +-- +2.34.1 + diff --git a/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch b/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch new file mode 100644 index 0000000..9cf4e6b --- /dev/null +++ b/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch @@ -0,0 +1,172 @@ +From bbcc1a69f787881f16156f3c789052942a564103 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Thu, 20 Jan 2022 05:35:49 -0800 +Subject: [PATCH] isa-l/CET: Add CET marker to x86-64 crc32 assembly codes + +Add .note.gnu.property section to x86-64 crc32 assembly codes to mark +for IBT and SHSTK compatibility. +--- + crc/crc32_gzip_refl_by16_10.asm | 9 +++++++++ + crc/crc32_gzip_refl_by8.asm | 9 +++++++++ + crc/crc32_gzip_refl_by8_02.asm | 9 +++++++++ + crc/crc32_ieee_01.asm | 8 ++++++++ + crc/crc32_ieee_02.asm | 9 +++++++++ + crc/crc32_ieee_by16_10.asm | 9 +++++++++ + crc/crc32_ieee_by4.asm | 9 +++++++++ + crc/crc32_iscsi_00.asm | 8 ++++++++ + crc/crc32_iscsi_01.asm | 8 ++++++++ + 9 files changed, 78 insertions(+) + +diff --git a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm +index 40236f6..b16874d 100644 +--- a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm ++++ b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm +@@ -566,3 +566,12 @@ global no_ %+ FUNCTION_NAME + no_ %+ FUNCTION_NAME %+ : + %endif + %endif ; (AS_FEATURE_LEVEL) >= 10 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_gzip_refl_by8.asm b/src/isa-l/crc/crc32_gzip_refl_by8.asm +index 62f7e7d..97b0c4a 100644 +--- a/src/isa-l/crc/crc32_gzip_refl_by8.asm ++++ b/src/isa-l/crc/crc32_gzip_refl_by8.asm +@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908 + + ;;; func core, ver, snum + slversion crc32_gzip_refl_by8, 01, 00, 002c ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm +index 80d849e..1d5a75f 100644 +--- a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm ++++ b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm +@@ -553,3 +553,12 @@ pshufb_shf_table: + ; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15 + dq 0x8786858483828100, 0x8f8e8d8c8b8a8988 + dq 0x0706050403020100, 0x000e0d0c0b0a0908 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_ieee_01.asm b/src/isa-l/crc/crc32_ieee_01.asm +index 32495ed..cfc443b 100644 +--- a/src/isa-l/crc/crc32_ieee_01.asm ++++ b/src/isa-l/crc/crc32_ieee_01.asm +@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908 + ;;; func core, ver, snum + slversion crc32_ieee_01, 01, 06, 0011 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_ieee_02.asm b/src/isa-l/crc/crc32_ieee_02.asm +index 8a472b0..dd7096a 100644 +--- a/src/isa-l/crc/crc32_ieee_02.asm ++++ b/src/isa-l/crc/crc32_ieee_02.asm +@@ -649,3 +649,12 @@ pshufb_shf_table: + ; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15 + dq 0x8786858483828100, 0x8f8e8d8c8b8a8988 + dq 0x0706050403020100, 0x000e0d0c0b0a0908 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_ieee_by16_10.asm b/src/isa-l/crc/crc32_ieee_by16_10.asm +index 200fd93..2afd597 100644 +--- a/src/isa-l/crc/crc32_ieee_by16_10.asm ++++ b/src/isa-l/crc/crc32_ieee_by16_10.asm +@@ -582,3 +582,12 @@ global no_ %+ FUNCTION_NAME + no_ %+ FUNCTION_NAME %+ : + %endif + %endif ; (AS_FEATURE_LEVEL) >= 10 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_ieee_by4.asm b/src/isa-l/crc/crc32_ieee_by4.asm +index 39bed5a..847d0bd 100644 +--- a/src/isa-l/crc/crc32_ieee_by4.asm ++++ b/src/isa-l/crc/crc32_ieee_by4.asm +@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607 + + ;;; func core, ver, snum + slversion crc32_ieee_by4, 05, 02, 0017 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_iscsi_00.asm b/src/isa-l/crc/crc32_iscsi_00.asm +index 4f81e3a..3d6b2d1 100644 +--- a/src/isa-l/crc/crc32_iscsi_00.asm ++++ b/src/isa-l/crc/crc32_iscsi_00.asm +@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643 + ;;; func core, ver, snum + slversion crc32_iscsi_00, 00, 04, 0014 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/isa-l/crc/crc32_iscsi_01.asm b/src/isa-l/crc/crc32_iscsi_01.asm +index 2a81517..c048413 100644 +--- a/src/isa-l/crc/crc32_iscsi_01.asm ++++ b/src/isa-l/crc/crc32_iscsi_01.asm +@@ -588,3 +588,11 @@ K_table: + ;;; func core, ver, snum + slversion crc32_iscsi_01, 01, 04, 0015 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +-- +2.34.1 + diff --git a/0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch b/0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch new file mode 100644 index 0000000..baa9154 --- /dev/null +++ b/0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch @@ -0,0 +1,100 @@ +From 72e6d27e08c86c16e8931739a5e6ecbc06b102d5 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Thu, 20 Jan 2022 05:40:56 -0800 +Subject: [PATCH] spdk/isa-l/CET: Add CET marker to x86-64 crc32 assembly codes + +Add .note.gnu.property section to x86-64 crc32 assembly codes to mark +for IBT and SHSTK compatibility. +--- + crc/crc32_gzip_refl_by8.asm | 9 +++++++++ + crc/crc32_ieee_01.asm | 8 ++++++++ + crc/crc32_ieee_by4.asm | 9 +++++++++ + crc/crc32_iscsi_00.asm | 8 ++++++++ + crc/crc32_iscsi_01.asm | 8 ++++++++ + 5 files changed, 42 insertions(+) + +diff --git a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm +index 62f7e7d..97b0c4a 100644 +--- a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm ++++ b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm +@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908 + + ;;; func core, ver, snum + slversion crc32_gzip_refl_by8, 01, 00, 002c ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/spdk/isa-l/crc/crc32_ieee_01.asm b/src/spdk/isa-l/crc/crc32_ieee_01.asm +index 32495ed..cfc443b 100644 +--- a/src/spdk/isa-l/crc/crc32_ieee_01.asm ++++ b/src/spdk/isa-l/crc/crc32_ieee_01.asm +@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908 + ;;; func core, ver, snum + slversion crc32_ieee_01, 01, 06, 0011 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/spdk/isa-l/crc/crc32_ieee_by4.asm b/src/spdk/isa-l/crc/crc32_ieee_by4.asm +index 39bed5a..847d0bd 100644 +--- a/src/spdk/isa-l/crc/crc32_ieee_by4.asm ++++ b/src/spdk/isa-l/crc/crc32_ieee_by4.asm +@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607 + + ;;; func core, ver, snum + slversion crc32_ieee_by4, 05, 02, 0017 ++ ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/spdk/isa-l/crc/crc32_iscsi_00.asm b/src/spdk/isa-l/crc/crc32_iscsi_00.asm +index 4f81e3a..3d6b2d1 100644 +--- a/src/spdk/isa-l/crc/crc32_iscsi_00.asm ++++ b/src/spdk/isa-l/crc/crc32_iscsi_00.asm +@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643 + ;;; func core, ver, snum + slversion crc32_iscsi_00, 00, 04, 0014 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +diff --git a/src/spdk/isa-l/crc/crc32_iscsi_01.asm b/src/spdk/isa-l/crc/crc32_iscsi_01.asm +index 2a81517..c048413 100644 +--- a/src/spdk/isa-l/crc/crc32_iscsi_01.asm ++++ b/src/spdk/isa-l/crc/crc32_iscsi_01.asm +@@ -588,3 +588,11 @@ K_table: + ;;; func core, ver, snum + slversion crc32_iscsi_01, 01, 04, 0015 + ++%ifidn __OUTPUT_FORMAT__, elf64 ++; inform linker that this doesn't require executable stack ++section .note.GNU-stack noalloc noexec nowrite progbits ++; inform linker that this is compatible with IBT and SHSTK ++section .note.gnu.property note alloc noexec align=8 ++DD 0x00000004,0x00000010,0x00000005,0x00554e47 ++DD 0xc0000002,0x00000004,0x00000003,0x00000000 ++%endif +-- +2.34.1 + diff --git a/ceph.spec b/ceph.spec index 127b788..20fac67 100644 --- a/ceph.spec +++ b/ceph.spec @@ -130,7 +130,7 @@ ################################################################################# Name: ceph Version: 16.2.7 -Release: 5%{?dist} +Release: 6%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %endif @@ -151,6 +151,9 @@ Patch0001: 0001-src-common-crc32c_intel_fast.patch Patch0003: 0003-src-common-bitstr.h.patch Patch0007: 0007-src-test-neorados-CMakeLists.txt.patch Patch0008: 0008-cmake-modules-Finduring.cmake.patch +Patch0010: 0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch +Patch0011: 0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch +Patch0012: 0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch Patch0014: 0014-rgw-Replace-boost-string_ref-view-with-std-string_vi.patch Patch0015: 0015-src-kv-rocksdb_cache.patch Patch0016: 0016-src-tracing-patch @@ -2520,6 +2523,9 @@ exit 0 %config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml %changelog +* Tue Jan 25 2022 Kaleb S. KEITHLEY - 2:16.2.7-6 +- 16.2.7, more CET enablement, rhbz#2040091 + * Thu Jan 20 2022 Kaleb S. KEITHLEY - 2:16.2.7-5 - 16.2.7, rebuild with gcc-12, exclude ppc64le until fmt on ppc64le is fixed