diff --git a/Backport-JDK-8352673-RISC-V-Vector-can-t-be-turned-o.patch b/Backport-JDK-8352673-RISC-V-Vector-can-t-be-turned-o.patch new file mode 100644 index 0000000000000000000000000000000000000000..437e724ca9e21e1586e1c74c7a87aa2d18b6b663 --- /dev/null +++ b/Backport-JDK-8352673-RISC-V-Vector-can-t-be-turned-o.patch @@ -0,0 +1,23 @@ +From fc255c7c11af6a3e60e3cdd74ae0986579adbaae Mon Sep 17 00:00:00 2001 +From: Dingli Zhang +Date: Tue, 29 Apr 2025 22:41:45 +0800 +Subject: [PATCH] Backport JDK-8352673: RISC-V: Vector can't be turned on with + -XX:+UseRVV + + +diff --git a/src/hotspot/cpu/riscv/vm_version_riscv.cpp b/src/hotspot/cpu/riscv/vm_version_riscv.cpp +index febe7cc0d73..97ac3a2e1d4 100644 +--- a/src/hotspot/cpu/riscv/vm_version_riscv.cpp ++++ b/src/hotspot/cpu/riscv/vm_version_riscv.cpp +@@ -166,7 +166,7 @@ void VM_Version::initialize() { + } + + if (UseRVV) { +- if (!ext_V.enabled()) { ++ if (!ext_V.enabled() && FLAG_IS_DEFAULT(UseRVV)) { + warning("RVV is not supported on this CPU"); + FLAG_SET_DEFAULT(UseRVV, false); + } else { +-- +2.34.1 + diff --git a/Backport-JDK-8355878-RISC-V-jdk-incubator-vector-Dou.patch b/Backport-JDK-8355878-RISC-V-jdk-incubator-vector-Dou.patch new file mode 100644 index 0000000000000000000000000000000000000000..a898ee969ade23a5ca2ff7dcb9e118d7f8962485 --- /dev/null +++ b/Backport-JDK-8355878-RISC-V-jdk-incubator-vector-Dou.patch @@ -0,0 +1,34 @@ +From 5724de06f17cae3db89c911674d0b1906403af45 Mon Sep 17 00:00:00 2001 +From: Dingli Zhang +Date: Tue, 29 Apr 2025 22:42:53 +0800 +Subject: [PATCH] Backport JDK-8355878: RISC-V: + jdk/incubator/vector/DoubleMaxVectorTests.java fails when using RVV + + +diff --git a/src/hotspot/cpu/riscv/riscv.ad b/src/hotspot/cpu/riscv/riscv.ad +index 148cf8dd3ae..d47b3a0502f 100644 +--- a/src/hotspot/cpu/riscv/riscv.ad ++++ b/src/hotspot/cpu/riscv/riscv.ad +@@ -1609,7 +1609,8 @@ uint MachSpillCopyNode::implementation(CodeBuffer *cbuf, PhaseRegAlloc *ra_, boo + __ unspill(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo)); + } else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) { + // vpr to vpr +- __ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo])); ++ __ vsetvli_helper(T_BYTE, MaxVectorSize); ++ __ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo])); + } else { + ShouldNotReachHere(); + } +@@ -1628,7 +1629,8 @@ uint MachSpillCopyNode::implementation(CodeBuffer *cbuf, PhaseRegAlloc *ra_, boo + __ unspill_vmask(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo)); + } else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) { + // vmask to vmask +- __ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo])); ++ __ vsetvli_helper(T_BYTE, MaxVectorSize >> 3); ++ __ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo])); + } else { + ShouldNotReachHere(); + } +-- +2.34.1 + diff --git a/openjdk-21.spec b/openjdk-21.spec index 60b4fed8eceebf4a6bab968a6e0503a194c844ad..8363d6d934ee59cfe34329a8d7a2826cfb963e0b 100644 --- a/openjdk-21.spec +++ b/openjdk-21.spec @@ -905,7 +905,7 @@ Name: java-21-%{origin} Version: %{newjavaver}.%{buildver} # This package needs `.rolling` as part of Release so as to not conflict on install with # java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as -Release: 3 +Release: 4 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages @@ -1053,6 +1053,8 @@ Patch3002: Backport-JDK-8329083-RISC-V-Update-profiles-supporte.patch Patch3003: Backport-JDK-8343555-RISC-V-make-some-verified-on-ha.patch Patch3004: Backport-JDK-8348554-Enhance-Linux-kernel-version-ch.patch Patch3005: Backport-JDK-8348384-RISC-V-Disable-auto-enable-Vect.patch +Patch3006: Backport-JDK-8352673-RISC-V-Vector-can-t-be-turned-o.patch +Patch3007: Backport-JDK-8355878-RISC-V-jdk-incubator-vector-Dou.patch BuildRequires: autoconf BuildRequires: automake @@ -1352,6 +1354,8 @@ pushd %{top_level_dir_name} %patch3003 -p1 %patch3004 -p1 %patch3005 -p1 +%patch3006 -p1 +%patch3007 -p1 popd %endif @@ -1909,6 +1913,10 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect %changelog +* Wed May 14 2025 Dingli Zhang - 1:21.0.7.6-4 +- add Backport-JDK-8352673-RISC-V-Vector-can-t-be-turned-o.patch +- add Backport-JDK-8355878-RISC-V-jdk-incubator-vector-Dou.patch + * Sat May 10 2025 wulongyao - 1:21.0.7.6-3 - delete huawei-Add-KAE-SM2.patch @@ -1928,7 +1936,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - add huawei-fix-build-fail-realpath.patch - modify huawei-heap-dump-redact-support.patch -* Mon Mar 24 2025 Dingli deleteZhang - 1:21.0.6.7-3 +* Mon Mar 24 2025 Dingli Zhang - 1:21.0.6.7-3 - add RVA23 profile and disable auto-enable Vector on buggy kernels for riscv64 - add Backport-JDK-8315338-RISC-V-Change-flags-for-stable-.patch - add Backport-JDK-8329083-RISC-V-Update-profiles-supporte.patch