From a48e5d9dc8563ecd801dae438e574b79c8495ddc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Apr 2022 12:19:42 +0100 Subject: [PATCH] Allow the AArch64 architecture's RNG extension to be used without ARMv8.5. Resolves: #2071038 --- binutils-aarch64-rng.patch | 42 ++++++++++++++++++++++++++++++++++++++ binutils.spec | 11 +++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 binutils-aarch64-rng.patch diff --git a/binutils-aarch64-rng.patch b/binutils-aarch64-rng.patch new file mode 100644 index 0000000..32b354c --- /dev/null +++ b/binutils-aarch64-rng.patch @@ -0,0 +1,42 @@ +Only in binutils-2.35.2/gas/testsuite/gas/aarch64: rng-1.d +Only in binutils-2.35.2/gas/testsuite/gas/aarch64: rng-1.s +diff -rup binutils.orig/opcodes/aarch64-opc.c binutils-2.35.2/opcodes/aarch64-opc.c +--- binutils.orig/opcodes/aarch64-opc.c 2022-04-05 11:50:10.131798329 +0100 ++++ binutils-2.35.2/opcodes/aarch64-opc.c 2022-04-05 11:54:32.596827591 +0100 +@@ -3810,9 +3810,6 @@ aarch64_print_operand (char *buf, size_t + #define SR_FEAT(n,e,f,feat) \ + SYSREG ((n), (e), (f) | F_ARCHEXT, AARCH64_FEATURE_##feat) + +-#define SR_RNG(n,e,f) \ +- SYSREG ((n), (e), (f) | F_ARCHEXT, AARCH64_FEATURE_RNG | AARCH64_FEATURE_V8_5) +- + #define SR_V8_1(n,e,f) SR_FEAT (n,e,f,V8_1) + #define SR_V8_2(n,e,f) SR_FEAT (n,e,f,V8_2) + #define SR_V8_3(n,e,f) SR_FEAT (n,e,f,V8_3) +@@ -3820,6 +3817,7 @@ aarch64_print_operand (char *buf, size_t + #define SR_V8_4(n,e,f) SR_FEAT (n,e,f,V8_4) + #define SR_PAN(n,e,f) SR_FEAT (n,e,f,PAN) + #define SR_RAS(n,e,f) SR_FEAT (n,e,f,RAS) ++#define SR_RNG(n,e,f) SR_FEAT (n,e,f,RNG) + #define SR_SSBS(n,e,f) SR_FEAT (n,e,f,SSBS) + #define SR_SVE(n,e,f) SR_FEAT (n,e,f,SVE) + #define SR_ID_PFR2(n,e,f) SR_FEAT (n,e,f,ID_PFR2) +--- /dev/null 2022-04-05 09:32:54.900867346 +0100 ++++ binutils-2.35.2/gas/testsuite/gas/aarch64/rng-1.s 2022-04-05 11:55:13.973674567 +0100 +@@ -0,0 +1,3 @@ ++ .arch armv8.4-a+rng ++ mrs x5, rndr ++ mrs x6, rndrrs +--- /dev/null 2022-04-05 09:32:54.900867346 +0100 ++++ binutils-2.35.2/gas/testsuite/gas/aarch64/rng-1.d 2022-04-05 11:55:45.338558554 +0100 +@@ -0,0 +1,10 @@ ++#source: rng-1.s ++#objdump: -dr ++ ++.*: file format .* ++ ++Disassembly of section \.text: ++ ++0+ <.*>: ++.*: d53b2405 mrs x5, rndr ++.*: d53b2426 mrs x6, rndrrs diff --git a/binutils.spec b/binutils.spec index c53f9f3..cfbaf7c 100644 --- a/binutils.spec +++ b/binutils.spec @@ -39,7 +39,7 @@ Summary: A GNU collection of binary utilities Name: binutils%{?name_cross}%{?_with_debug:-debug} Version: 2.35.2 -Release: 19%{?dist} +Release: 20%{?dist} License: GPLv3+ URL: https://sourceware.org/binutils @@ -406,6 +406,10 @@ Patch52: binutils-gas-Use-the-directory-name-in-.file-0.patch # Lifetime: Who knows. Patch53: gcc12-libtool-no-rpath.patch +# Purpose: Allow the AArch64 RNG extension to be used wihtout ARMv8.5 +# Lifetime: Fixed in 2.39 +Patch54: binutils-aarch64-rng.patch + #---------------------------------------------------------------------------- Provides: bundled(libiberty) @@ -976,6 +980,8 @@ exit 0 %{_libdir}/libctf* %exclude %{_libdir}/libbfd.so %exclude %{_libdir}/libopcodes.so +%exclude %{_libdir}/libctf.a +%exclude %{_libdir}/libctf-nobfd.a %endif %if %{isnative} @@ -997,6 +1003,9 @@ exit 0 #---------------------------------------------------------------------------- %changelog +* Tue Apr 05 2022 Nick Clifton - 2.35.2-20 +- Allow the AArch64 architecture's RNG extension to be used without ARMv8.5. (#2071038) + * Wed Mar 30 2022 Nick Clifton - 2.35.2-19 - NVR bump to allow rebuild. (#2057638)