From: Greg Kroah-Hartman Date: Wed, 23 Aug 2023 15:26:36 +0000 (+0200) Subject: drop riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch from 6.4 and 6.1 X-Git-Tag: v6.4.12~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3128d4e3303d0ace087c05aac5b0296a4d5d06ed;p=thirdparty%2Fkernel%2Fstable-queue.git drop riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch from 6.4 and 6.1 --- diff --git a/queue-6.1/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch b/queue-6.1/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch deleted file mode 100644 index 03620de4faa..00000000000 --- a/queue-6.1/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch +++ /dev/null @@ -1,111 +0,0 @@ -From ca09f772cccaeec4cd05a21528c37a260aa2dd2c Mon Sep 17 00:00:00 2001 -From: Mingzheng Xing -Date: Thu, 10 Aug 2023 00:56:48 +0800 -Subject: riscv: Handle zicsr/zifencei issue between gcc and binutils - -From: Mingzheng Xing - -commit ca09f772cccaeec4cd05a21528c37a260aa2dd2c upstream. - -Binutils-2.38 and GCC-12.1.0 bumped[0][1] the default ISA spec to the newer -20191213 version which moves some instructions from the I extension to the -Zicsr and Zifencei extensions. So if one of the binutils and GCC exceeds -that version, we should explicitly specifying Zicsr and Zifencei via -march -to cope with the new changes. but this only occurs when binutils >= 2.36 -and GCC >= 11.1.0. It's a different story when binutils < 2.36. - -binutils-2.36 supports the Zifencei extension[2] and splits Zifencei and -Zicsr from I[3]. GCC-11.1.0 is particular[4] because it add support Zicsr -and Zifencei extension for -march. binutils-2.35 does not support the -Zifencei extension, and does not need to specify Zicsr and Zifencei when -working with GCC >= 12.1.0. - -To make our lives easier, let's relax the check to binutils >= 2.36 in -CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. For the other two cases, -where clang < 17 or GCC < 11.1.0, we will deal with them in -CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC. - -For more information, please refer to: -commit 6df2a016c0c8 ("riscv: fix build with binutils 2.38") -commit e89c2e815e76 ("riscv: Handle zicsr/zifencei issues between clang and binutils") - -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc [0] -Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98416dbb0a62579d4a7a4a76bab51b5b52fec2cd [1] -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5a1b31e1e1cee6e9f1c92abff59cdcfff0dddf30 [2] -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=729a53530e86972d1143553a415db34e6e01d5d2 [3] -Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b03be74bad08c382da47e048007a78fa3fb4ef49 [4] -Link: https://lore.kernel.org/all/20230308220842.1231003-1-conor@kernel.org -Link: https://lore.kernel.org/all/20230223220546.52879-1-conor@kernel.org -Reviewed-by: Conor Dooley -Acked-by: Guo Ren -Cc: -Signed-off-by: Mingzheng Xing -Link: https://lore.kernel.org/r/20230809165648.21071-1-xingmingzheng@iscas.ac.cn -Signed-off-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - arch/riscv/Kconfig | 28 +++++++++++++++++----------- - arch/riscv/kernel/compat_vdso/Makefile | 8 +++++++- - 2 files changed, 24 insertions(+), 12 deletions(-) - ---- a/arch/riscv/Kconfig -+++ b/arch/riscv/Kconfig -@@ -447,24 +447,30 @@ config TOOLCHAIN_HAS_ZIHINTPAUSE - config TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI - def_bool y - # https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc -- depends on AS_IS_GNU && AS_VERSION >= 23800 -+ # https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98416dbb0a62579d4a7a4a76bab51b5b52fec2cd -+ depends on AS_IS_GNU && AS_VERSION >= 23600 - help -- Newer binutils versions default to ISA spec version 20191213 which -- moves some instructions from the I extension to the Zicsr and Zifencei -- extensions. -+ Binutils-2.38 and GCC-12.1.0 bumped the default ISA spec to the newer -+ 20191213 version, which moves some instructions from the I extension to -+ the Zicsr and Zifencei extensions. This requires explicitly specifying -+ Zicsr and Zifencei when binutils >= 2.38 or GCC >= 12.1.0. Zicsr -+ and Zifencei are supported in binutils from version 2.36 onwards. -+ To make life easier, and avoid forcing toolchains that default to a -+ newer ISA spec to version 2.2, relax the check to binutils >= 2.36. -+ For clang < 17 or GCC < 11.1.0, for which this is not possible, this is -+ dealt with in CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC. - - config TOOLCHAIN_NEEDS_OLD_ISA_SPEC - def_bool y - depends on TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI - # https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d4498694e15bf8a16 -- depends on CC_IS_CLANG && CLANG_VERSION < 170000 -+ # https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b03be74bad08c382da47e048007a78fa3fb4ef49 -+ depends on (CC_IS_CLANG && CLANG_VERSION < 170000) || (CC_IS_GCC && GCC_VERSION < 110100) - help -- Certain versions of clang do not support zicsr and zifencei via -march -- but newer versions of binutils require it for the reasons noted in the -- help text of CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. This -- option causes an older ISA spec compatible with these older versions -- of clang to be passed to GAS, which has the same result as passing zicsr -- and zifencei to -march. -+ Certain versions of clang and GCC do not support zicsr and zifencei via -+ -march. This option causes an older ISA spec compatible with these older -+ versions of clang and GCC to be passed to GAS, which has the same result -+ as passing zicsr and zifencei to -march. - - config FPU - bool "FPU support" ---- a/arch/riscv/kernel/compat_vdso/Makefile -+++ b/arch/riscv/kernel/compat_vdso/Makefile -@@ -11,7 +11,13 @@ compat_vdso-syms += flush_icache - COMPAT_CC := $(CC) - COMPAT_LD := $(LD) - --COMPAT_CC_FLAGS := -march=rv32g -mabi=ilp32 -+# binutils 2.35 does not support the zifencei extension, but in the ISA -+# spec 20191213, G stands for IMAFD_ZICSR_ZIFENCEI. -+ifdef CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI -+ COMPAT_CC_FLAGS := -march=rv32g -mabi=ilp32 -+else -+ COMPAT_CC_FLAGS := -march=rv32imafd -mabi=ilp32 -+endif - COMPAT_LD_FLAGS := -melf32lriscv - - # Disable attributes, as they're useless and break the build. diff --git a/queue-6.1/series b/queue-6.1/series index 1d0a7e97948..79300016182 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -151,7 +151,6 @@ riscv-uaccess-return-the-number-of-bytes-effectively.patch serial-8250-fix-oops-for-port-pm-on-uart_change_pm.patch alsa-usb-audio-add-support-for-mythware-xa001au-capture-and-playback-interfaces.patch cifs-release-folio-lock-on-fscache-read-hit.patch -riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch virtio-net-zero-max_tx_vq-field-for-virtio_net_ctrl_mq_hash_config-case.patch arm64-dts-rockchip-fix-wifi-bluetooth-on-rock-pi-4-boards.patch blk-crypto-dynamically-allocate-fallback-profile.patch diff --git a/queue-6.4/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch b/queue-6.4/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch deleted file mode 100644 index 7eeae8272e5..00000000000 --- a/queue-6.4/riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch +++ /dev/null @@ -1,111 +0,0 @@ -From ca09f772cccaeec4cd05a21528c37a260aa2dd2c Mon Sep 17 00:00:00 2001 -From: Mingzheng Xing -Date: Thu, 10 Aug 2023 00:56:48 +0800 -Subject: riscv: Handle zicsr/zifencei issue between gcc and binutils - -From: Mingzheng Xing - -commit ca09f772cccaeec4cd05a21528c37a260aa2dd2c upstream. - -Binutils-2.38 and GCC-12.1.0 bumped[0][1] the default ISA spec to the newer -20191213 version which moves some instructions from the I extension to the -Zicsr and Zifencei extensions. So if one of the binutils and GCC exceeds -that version, we should explicitly specifying Zicsr and Zifencei via -march -to cope with the new changes. but this only occurs when binutils >= 2.36 -and GCC >= 11.1.0. It's a different story when binutils < 2.36. - -binutils-2.36 supports the Zifencei extension[2] and splits Zifencei and -Zicsr from I[3]. GCC-11.1.0 is particular[4] because it add support Zicsr -and Zifencei extension for -march. binutils-2.35 does not support the -Zifencei extension, and does not need to specify Zicsr and Zifencei when -working with GCC >= 12.1.0. - -To make our lives easier, let's relax the check to binutils >= 2.36 in -CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. For the other two cases, -where clang < 17 or GCC < 11.1.0, we will deal with them in -CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC. - -For more information, please refer to: -commit 6df2a016c0c8 ("riscv: fix build with binutils 2.38") -commit e89c2e815e76 ("riscv: Handle zicsr/zifencei issues between clang and binutils") - -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc [0] -Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98416dbb0a62579d4a7a4a76bab51b5b52fec2cd [1] -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5a1b31e1e1cee6e9f1c92abff59cdcfff0dddf30 [2] -Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=729a53530e86972d1143553a415db34e6e01d5d2 [3] -Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b03be74bad08c382da47e048007a78fa3fb4ef49 [4] -Link: https://lore.kernel.org/all/20230308220842.1231003-1-conor@kernel.org -Link: https://lore.kernel.org/all/20230223220546.52879-1-conor@kernel.org -Reviewed-by: Conor Dooley -Acked-by: Guo Ren -Cc: -Signed-off-by: Mingzheng Xing -Link: https://lore.kernel.org/r/20230809165648.21071-1-xingmingzheng@iscas.ac.cn -Signed-off-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - arch/riscv/Kconfig | 28 +++++++++++++++++----------- - arch/riscv/kernel/compat_vdso/Makefile | 8 +++++++- - 2 files changed, 24 insertions(+), 12 deletions(-) - ---- a/arch/riscv/Kconfig -+++ b/arch/riscv/Kconfig -@@ -525,24 +525,30 @@ config TOOLCHAIN_HAS_ZIHINTPAUSE - config TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI - def_bool y - # https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc -- depends on AS_IS_GNU && AS_VERSION >= 23800 -+ # https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98416dbb0a62579d4a7a4a76bab51b5b52fec2cd -+ depends on AS_IS_GNU && AS_VERSION >= 23600 - help -- Newer binutils versions default to ISA spec version 20191213 which -- moves some instructions from the I extension to the Zicsr and Zifencei -- extensions. -+ Binutils-2.38 and GCC-12.1.0 bumped the default ISA spec to the newer -+ 20191213 version, which moves some instructions from the I extension to -+ the Zicsr and Zifencei extensions. This requires explicitly specifying -+ Zicsr and Zifencei when binutils >= 2.38 or GCC >= 12.1.0. Zicsr -+ and Zifencei are supported in binutils from version 2.36 onwards. -+ To make life easier, and avoid forcing toolchains that default to a -+ newer ISA spec to version 2.2, relax the check to binutils >= 2.36. -+ For clang < 17 or GCC < 11.1.0, for which this is not possible, this is -+ dealt with in CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC. - - config TOOLCHAIN_NEEDS_OLD_ISA_SPEC - def_bool y - depends on TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI - # https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d4498694e15bf8a16 -- depends on CC_IS_CLANG && CLANG_VERSION < 170000 -+ # https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b03be74bad08c382da47e048007a78fa3fb4ef49 -+ depends on (CC_IS_CLANG && CLANG_VERSION < 170000) || (CC_IS_GCC && GCC_VERSION < 110100) - help -- Certain versions of clang do not support zicsr and zifencei via -march -- but newer versions of binutils require it for the reasons noted in the -- help text of CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. This -- option causes an older ISA spec compatible with these older versions -- of clang to be passed to GAS, which has the same result as passing zicsr -- and zifencei to -march. -+ Certain versions of clang and GCC do not support zicsr and zifencei via -+ -march. This option causes an older ISA spec compatible with these older -+ versions of clang and GCC to be passed to GAS, which has the same result -+ as passing zicsr and zifencei to -march. - - config FPU - bool "FPU support" ---- a/arch/riscv/kernel/compat_vdso/Makefile -+++ b/arch/riscv/kernel/compat_vdso/Makefile -@@ -11,7 +11,13 @@ compat_vdso-syms += flush_icache - COMPAT_CC := $(CC) - COMPAT_LD := $(LD) - --COMPAT_CC_FLAGS := -march=rv32g -mabi=ilp32 -+# binutils 2.35 does not support the zifencei extension, but in the ISA -+# spec 20191213, G stands for IMAFD_ZICSR_ZIFENCEI. -+ifdef CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI -+ COMPAT_CC_FLAGS := -march=rv32g -mabi=ilp32 -+else -+ COMPAT_CC_FLAGS := -march=rv32imafd -mabi=ilp32 -+endif - COMPAT_LD_FLAGS := -melf32lriscv - - # Disable attributes, as they're useless and break the build. diff --git a/queue-6.4/series b/queue-6.4/series index fd23228d644..729641aa5cf 100644 --- a/queue-6.4/series +++ b/queue-6.4/series @@ -202,7 +202,6 @@ serial-8250-fix-oops-for-port-pm-on-uart_change_pm.patch alsa-usb-audio-add-support-for-mythware-xa001au-capture-and-playback-interfaces.patch cifs-release-folio-lock-on-fscache-read-hit.patch parisc-fix-config_tlb_ptlock-to-work-with-lightweight-spinlock-checks.patch -riscv-handle-zicsr-zifencei-issue-between-gcc-and-binutils.patch smb-client-fix-null-auth.patch regulator-da9063-better-fix-null-deref-with-partial-dt.patch virtio-net-zero-max_tx_vq-field-for-virtio_net_ctrl_mq_hash_config-case.patch