diff --git a/LoongArch64-support.patch b/LoongArch64-support.patch index 8b5d303a676c059ff04048a72719b703782e3c47..b8c734727aa5c12c3bb55e842429c2a1792ceec6 100644 --- a/LoongArch64-support.patch +++ b/LoongArch64-support.patch @@ -1,6 +1,6 @@ -From 790b520135eeeb11a6269bb16402d3160998363f Mon Sep 17 00:00:00 2001 +From ec8d5d4ee41b448c99153fef416549460d8313c6 Mon Sep 17 00:00:00 2001 From: songliyang -Date: Wed, 30 Apr 2025 11:20:52 +0800 +Date: Thu, 31 Jul 2025 14:53:37 +0800 Subject: [PATCH] LoongArch64 support --- @@ -243,7 +243,7 @@ Subject: [PATCH] LoongArch64 support .../float16/TestAllFloat16ToFloat.java | 8 +- .../float16/TestConstFloat16ToFloat.java | 8 +- .../testcases/GenericTestCaseForOtherCPU.java | 13 +- - .../intrinsics/string/TestCountPositives.java | 12 +- + .../intrinsics/string/TestCountPositives.java | 9 +- .../TestStringCompareToDifferentLength.java | 8 +- .../vm/ci/code/test/CodeInstallationTest.java | 11 + .../jdk/vm/ci/code/test/DataPatchTest.java | 11 +- @@ -297,7 +297,7 @@ Subject: [PATCH] LoongArch64 support .../ir_framework/tests/TestIRMatching.java | 8 +- .../nsk/share/jdi/ArgumentHandler.java | 178 +- .../TestLoongArch64CallArranger.java | 521 + - .../platform/PlatformLayouts.java | 59 + + .../platform/PlatformLayouts.java | 58 + .../ConcurrentHashMap/MapLoops.java | 8 +- .../jdk/jfr/event/os/TestCPUInformation.java | 10 +- .../nameservice/simple/DefaultCaching.java | 11 +- @@ -305,7 +305,7 @@ Subject: [PATCH] LoongArch64 support test/lib/jdk/test/lib/Platform.java | 10 + .../org/openjdk/bench/loongarch/C2Memory.java | 67 + .../bench/loongarch/MisAlignVector.java | 63 + - 301 files changed, 79758 insertions(+), 219 deletions(-) + 301 files changed, 79755 insertions(+), 218 deletions(-) create mode 100644 src/hotspot/cpu/loongarch/abstractInterpreter_loongarch.cpp create mode 100644 src/hotspot/cpu/loongarch/assembler_loongarch.cpp create mode 100644 src/hotspot/cpu/loongarch/assembler_loongarch.hpp @@ -52066,7 +52066,7 @@ index 000000000..c298cda5d +// during code generation, where no patching lock is needed. +void NativeCall::set_destination_mt_safe(address dest, bool assert_lock) { + assert(!assert_lock || -+ (Patching_lock->is_locked() || SafepointSynchronize::is_at_safepoint()) || ++ (CodeCache_lock->is_locked() || SafepointSynchronize::is_at_safepoint()) || + CompiledICLocker::is_safe(addr_at(0)), + "concurrent code patching"); + @@ -71224,7 +71224,7 @@ index 000000000..ab1202183 + return icache_line_size; +} diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp -index 5ebd57fb3..f74969e66 100644 +index bfd55895a..9b124c74d 100644 --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -23,6 +23,12 @@ @@ -71240,7 +71240,7 @@ index 5ebd57fb3..f74969e66 100644 // no precompiled headers #include "classfile/vmSymbols.hpp" #include "code/icBuffer.hpp" -@@ -2236,6 +2242,12 @@ bool os::Linux::query_process_memory_info(os::Linux::meminfo_t* info) { +@@ -2234,6 +2240,12 @@ bool os::Linux::query_process_memory_info(os::Linux::meminfo_t* info) { return false; } @@ -71253,7 +71253,7 @@ index 5ebd57fb3..f74969e66 100644 #ifdef __GLIBC__ // For Glibc, print a one-liner with the malloc tunables. // Most important and popular is MALLOC_ARENA_MAX, but we are -@@ -2452,7 +2464,7 @@ void os::print_memory_info(outputStream* st) { +@@ -2450,7 +2462,7 @@ void os::print_memory_info(outputStream* st) { // before "flags" so if we find a second "model name", then the // "flags" field is considered missing. static bool print_model_name_and_flags(outputStream* st, char* buf, size_t buflen) { @@ -71262,7 +71262,7 @@ index 5ebd57fb3..f74969e66 100644 // Other platforms have less repetitive cpuinfo files FILE *fp = os::fopen("/proc/cpuinfo", "r"); if (fp) { -@@ -2564,7 +2576,7 @@ void os::jfr_report_memory_info() { +@@ -2562,7 +2574,7 @@ void os::jfr_report_memory_info() { #endif // INCLUDE_JFR @@ -71271,7 +71271,7 @@ index 5ebd57fb3..f74969e66 100644 const char* search_string = "model name"; #elif defined(M68K) const char* search_string = "CPU"; -@@ -4567,6 +4579,44 @@ void os::Linux::numa_init() { +@@ -4565,6 +4577,44 @@ void os::Linux::numa_init() { // If there's only one node (they start from 0) or if the process // is bound explicitly to a single node using membind, disable NUMA UseNUMA = false; @@ -71317,7 +71317,7 @@ index 5ebd57fb3..f74969e66 100644 LogTarget(Info,os) log; LogStream ls(log); diff --git a/src/hotspot/os/linux/os_linux.hpp b/src/hotspot/os/linux/os_linux.hpp -index 029f2aa7a..78bf68a72 100644 +index 49f2777d1..7948b0ca0 100644 --- a/src/hotspot/os/linux/os_linux.hpp +++ b/src/hotspot/os/linux/os_linux.hpp @@ -22,6 +22,12 @@ @@ -71333,7 +71333,7 @@ index 029f2aa7a..78bf68a72 100644 #ifndef OS_LINUX_OS_LINUX_HPP #define OS_LINUX_OS_LINUX_HPP -@@ -195,6 +201,8 @@ class os::Linux { +@@ -193,6 +199,8 @@ class os::Linux { // none present @@ -74115,7 +74115,7 @@ index 892ccc6b8..6c1b9affc 100644 macro(MinI) macro(MinL) diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp -index def117afb..a2fca2de3 100644 +index cbe7b929c..efaa3bc24 100644 --- a/src/hotspot/share/opto/compile.cpp +++ b/src/hotspot/share/opto/compile.cpp @@ -22,6 +22,12 @@ @@ -74131,7 +74131,7 @@ index def117afb..a2fca2de3 100644 #include "precompiled.hpp" #include "asm/macroAssembler.hpp" #include "asm/macroAssembler.inline.hpp" -@@ -3760,6 +3766,7 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f +@@ -3759,6 +3765,7 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f n->set_req(MemBarNode::Precedent, top()); } break; @@ -74140,7 +74140,7 @@ index def117afb..a2fca2de3 100644 if (n->as_MemBar()->trailing_load() && n->req() > MemBarNode::Precedent) { // At parse time, the trailing MemBarAcquire for a volatile load diff --git a/src/hotspot/share/opto/memnode.cpp b/src/hotspot/share/opto/memnode.cpp -index d5c02b474..e0c5fa88f 100644 +index def2dbb71..282734bae 100644 --- a/src/hotspot/share/opto/memnode.cpp +++ b/src/hotspot/share/opto/memnode.cpp @@ -22,6 +22,12 @@ @@ -74156,7 +74156,7 @@ index d5c02b474..e0c5fa88f 100644 #include "precompiled.hpp" #include "classfile/javaClasses.hpp" #include "compiler/compileLog.hpp" -@@ -3318,6 +3324,7 @@ MemBarNode* MemBarNode::make(Compile* C, int opcode, int atp, Node* pn) { +@@ -3324,6 +3330,7 @@ MemBarNode* MemBarNode::make(Compile* C, int opcode, int atp, Node* pn) { case Op_MemBarReleaseLock: return new MemBarReleaseLockNode(C, atp, pn); case Op_MemBarVolatile: return new MemBarVolatileNode(C, atp, pn); case Op_MemBarCPUOrder: return new MemBarCPUOrderNode(C, atp, pn); @@ -74237,7 +74237,7 @@ index 988e6e42b..3edac67f0 100644 // Above we only verified that there is enough space in the instruction section. // However, the instruction may emit stubs that cause code buffer expansion. diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp -index 720a0e9ba..6ae1766f7 100644 +index ece795dd9..20f3c789e 100644 --- a/src/hotspot/share/runtime/arguments.cpp +++ b/src/hotspot/share/runtime/arguments.cpp @@ -22,6 +22,12 @@ @@ -74253,7 +74253,7 @@ index 720a0e9ba..6ae1766f7 100644 #include "precompiled.hpp" #include "cds/cds_globals.hpp" #include "cds/filemap.hpp" -@@ -1904,14 +1910,14 @@ bool Arguments::check_vm_args_consistency() { +@@ -1903,14 +1909,14 @@ bool Arguments::check_vm_args_consistency() { } #endif @@ -74422,7 +74422,7 @@ index ee0f754b8..e29e71641 100644 assert(owner_raw() != current, "invariant"); assert(_Responsible != current, "invariant"); diff --git a/src/hotspot/share/runtime/os.cpp b/src/hotspot/share/runtime/os.cpp -index 286a148ac..17c94339a 100644 +index c8724cd06..9c6ea75ac 100644 --- a/src/hotspot/share/runtime/os.cpp +++ b/src/hotspot/share/runtime/os.cpp @@ -22,6 +22,12 @@ @@ -74438,7 +74438,7 @@ index 286a148ac..17c94339a 100644 #include "precompiled.hpp" #include "classfile/javaClasses.hpp" #include "classfile/moduleEntry.hpp" -@@ -1331,7 +1337,8 @@ bool os::is_first_C_frame(frame* fr) { +@@ -1356,7 +1362,8 @@ bool os::is_first_C_frame(frame* fr) { if ((uintptr_t)fr->sender_sp() == (uintptr_t)-1 || is_pointer_bad(fr->sender_sp())) return true; uintptr_t old_fp = (uintptr_t)fr->link_or_null(); @@ -74449,7 +74449,7 @@ index 286a148ac..17c94339a 100644 // stack grows downwards; if old_fp is below current fp or if the stack diff --git a/src/hotspot/share/runtime/sharedRuntime.cpp b/src/hotspot/share/runtime/sharedRuntime.cpp -index f8713f5bb..6e75e8f21 100644 +index 3b3cfb0a9..03275ef32 100644 --- a/src/hotspot/share/runtime/sharedRuntime.cpp +++ b/src/hotspot/share/runtime/sharedRuntime.cpp @@ -22,6 +22,12 @@ @@ -74516,7 +74516,7 @@ index fac76262f..f41cf843d 100644 static double __kernel_sin(double x, double y, int iy) { diff --git a/src/hotspot/share/runtime/synchronizer.cpp b/src/hotspot/share/runtime/synchronizer.cpp -index b5859ed27..312b68baf 100644 +index cc73082ed..0456a1b66 100644 --- a/src/hotspot/share/runtime/synchronizer.cpp +++ b/src/hotspot/share/runtime/synchronizer.cpp @@ -22,6 +22,12 @@ @@ -74542,7 +74542,7 @@ index b5859ed27..312b68baf 100644 #else return false; diff --git a/src/hotspot/share/runtime/vmStructs.cpp b/src/hotspot/share/runtime/vmStructs.cpp -index 827cb0cdf..0c1bc9041 100644 +index 6c57c7998..08c48a1ef 100644 --- a/src/hotspot/share/runtime/vmStructs.cpp +++ b/src/hotspot/share/runtime/vmStructs.cpp @@ -22,6 +22,12 @@ @@ -74558,7 +74558,7 @@ index 827cb0cdf..0c1bc9041 100644 #include "precompiled.hpp" #include "cds/filemap.hpp" #include "ci/ciField.hpp" -@@ -1567,6 +1573,7 @@ +@@ -1568,6 +1574,7 @@ declare_c2_type(StoreFenceNode, MemBarNode) \ declare_c2_type(MemBarVolatileNode, MemBarNode) \ declare_c2_type(MemBarCPUOrderNode, MemBarNode) \ @@ -79201,7 +79201,7 @@ index c2275f656..b94e05fc1 100644 // We only have ChaCha20 intrinsics on x64 and aarch64 // currently. If the platform is neither of these then diff --git a/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16Conversion.java b/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16Conversion.java -index 0541121c1..d9fe8c91d 100644 +index eed42c714..397465888 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16Conversion.java +++ b/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16Conversion.java @@ -21,11 +21,17 @@ @@ -79220,11 +79220,11 @@ index 0541121c1..d9fe8c91d 100644 * @summary Verify conversion between float and the binary16 format - * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" + * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" | os.arch=="loongarch64" + * | ((os.arch == "ppc64" | os.arch == "ppc64le") & vm.cpu.features ~= ".*darn.*") * @requires vm.compiler1.enabled & vm.compiler2.enabled * @requires vm.compMode != "Xcomp" - * @comment default run diff --git a/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16ConversionNaN.java b/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16ConversionNaN.java -index 38060dfb5..151caa943 100644 +index 1051600ab..bb5d0a420 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16ConversionNaN.java +++ b/test/hotspot/jtreg/compiler/intrinsics/float16/Binary16ConversionNaN.java @@ -21,11 +21,17 @@ @@ -79243,11 +79243,11 @@ index 38060dfb5..151caa943 100644 * @summary Verify NaN sign and significand bits are preserved across conversions - * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" + * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" | os.arch=="loongarch64" + * | ((os.arch == "ppc64" | os.arch == "ppc64le") & vm.cpu.features ~= ".*darn.*") * @requires vm.compiler1.enabled & vm.compiler2.enabled * @requires vm.compMode != "Xcomp" - * @library /test/lib / diff --git a/test/hotspot/jtreg/compiler/intrinsics/float16/TestAllFloat16ToFloat.java b/test/hotspot/jtreg/compiler/intrinsics/float16/TestAllFloat16ToFloat.java -index 492901f00..e95554fa9 100644 +index 5352d20c5..cbfbd8ce6 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/float16/TestAllFloat16ToFloat.java +++ b/test/hotspot/jtreg/compiler/intrinsics/float16/TestAllFloat16ToFloat.java @@ -21,11 +21,17 @@ @@ -79266,11 +79266,11 @@ index 492901f00..e95554fa9 100644 * @summary Verify conversion between float and the binary16 format - * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch == "aarch64" + * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch == "aarch64" | os.arch == "loongarch64" + * | ((os.arch == "ppc64" | os.arch == "ppc64le") & vm.cpu.features ~= ".*darn.*") * @requires vm.compiler1.enabled & vm.compiler2.enabled * @requires vm.compMode != "Xcomp" - * @comment default run: diff --git a/test/hotspot/jtreg/compiler/intrinsics/float16/TestConstFloat16ToFloat.java b/test/hotspot/jtreg/compiler/intrinsics/float16/TestConstFloat16ToFloat.java -index b4ba578c9..27e6b86ab 100644 +index c8a03cade..13b14ec0d 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/float16/TestConstFloat16ToFloat.java +++ b/test/hotspot/jtreg/compiler/intrinsics/float16/TestConstFloat16ToFloat.java @@ -21,11 +21,17 @@ @@ -79289,9 +79289,9 @@ index b4ba578c9..27e6b86ab 100644 * @summary Verify conversion cons between float and the binary16 format - * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" + * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch=="aarch64" | os.arch == "loongarch64" + * | ((os.arch == "ppc64" | os.arch == "ppc64le") & vm.cpu.features ~= ".*darn.*") * @requires vm.compiler1.enabled & vm.compiler2.enabled * @requires vm.compMode != "Xcomp" - * @comment default run: diff --git a/test/hotspot/jtreg/compiler/intrinsics/sha/cli/testcases/GenericTestCaseForOtherCPU.java b/test/hotspot/jtreg/compiler/intrinsics/sha/cli/testcases/GenericTestCaseForOtherCPU.java index 468cd83d7..40d2b03e3 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/sha/cli/testcases/GenericTestCaseForOtherCPU.java @@ -79337,10 +79337,10 @@ index 468cd83d7..40d2b03e3 100644 this.checkUseSHA = checkUseSHA; } diff --git a/test/hotspot/jtreg/compiler/intrinsics/string/TestCountPositives.java b/test/hotspot/jtreg/compiler/intrinsics/string/TestCountPositives.java -index afc308c37..5b949dfa1 100644 +index 76ef47661..7fca97a00 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/string/TestCountPositives.java +++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestCountPositives.java -@@ -21,13 +21,21 @@ +@@ -21,6 +21,12 @@ * questions. */ @@ -79350,28 +79350,26 @@ index afc308c37..5b949dfa1 100644 + * available on the same license terms set forth above. + */ + + /* + * @test + * @bug 8281146 +@@ -51,6 +57,7 @@ + */ package compiler.intrinsics.string; +import jdk.test.lib.Platform; -+ - /* - * @test - * @bug 8999999 - * @summary Validates StringCoding.countPositives intrinsic with a small range of tests. -- * @library /compiler/patches -+ * @library /compiler/patches /test/lib - * - * @build java.base/java.lang.Helper - * @run main compiler.intrinsics.string.TestCountPositives -@@ -91,7 +99,7 @@ public class TestCountPositives { - int calculated = Helper.StringCodingCountPositives(tBa, off, len); - int expected = countPositives(tBa, off, len); - if (calculated != expected) { -- if (expected != len && calculated >= 0 && calculated < expected) { -+ if (!Platform.isLoongArch64() && expected != len && calculated >= 0 && calculated < expected) { - // allow intrinsics to return early with a lower value, - // but only if we're not expecting the full length (no - // negative bytes) + import java.lang.Helper; + import java.util.Random; + import java.util.stream.IntStream; +@@ -127,7 +134,7 @@ public class TestCountPositives { + int calculated = Helper.StringCodingCountPositives(bytes, off, len); + int expected = countPositives(bytes, off, len); + if (calculated != expected) { +- if (expected != len && ng >= 0 && calculated >= 0 && calculated < expected) { ++ if (!Platform.isLoongArch64() && expected != len && calculated >= 0 && calculated < expected) { + // allow intrinsics to return early with a lower value, + // but only if we're not expecting the full length (no + // negative bytes) diff --git a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringCompareToDifferentLength.java b/test/hotspot/jtreg/compiler/intrinsics/string/TestStringCompareToDifferentLength.java index 26bc03c27..606f0d4f1 100644 --- a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringCompareToDifferentLength.java @@ -80246,7 +80244,7 @@ index 000000000..4c7686845 + +} diff --git a/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java b/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java -index 8eb1af01d..151c422f9 100644 +index 91213cb26..c2ca59344 100644 --- a/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java +++ b/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java @@ -21,6 +21,12 @@ @@ -83076,7 +83074,7 @@ index 5c41565db..ec9499d92 100644 * @run main/othervm/native -agentlib:AsyncGetCallTraceTest MyPackage.ASGCTBaseTest */ diff --git a/test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java b/test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java -index 5d9c3982f..f346e763d 100644 +index 87e664ef3..0f5535f47 100644 --- a/test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java +++ b/test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java @@ -21,6 +21,12 @@ @@ -83092,9 +83090,9 @@ index 5d9c3982f..f346e763d 100644 import java.io.OutputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; -@@ -36,7 +42,7 @@ import jdk.test.lib.SA.SATestUtils; - /** +@@ -37,7 +43,7 @@ import jdk.test.lib.SA.SATestUtils; * @test + * @bug 8214226 8243500 * @requires vm.hasSA - * @requires os.arch=="amd64" | os.arch=="x86_64" + * @requires os.arch=="amd64" | os.arch=="x86_64" | os.arch=="loongarch64" @@ -83128,7 +83126,7 @@ index 0fd262bd1..0fee3041f 100644 } else if (Platform.isS390x()){ cmp = "CLFI"; diff --git a/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java b/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java -index 168631895..e2f3a1347 100644 +index 3f924c6ac..4c022637e 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java @@ -21,6 +21,12 @@ @@ -83144,7 +83142,7 @@ index 168631895..e2f3a1347 100644 package nsk.share.jdi; import nsk.share.*; -@@ -520,21 +526,22 @@ class CheckedFeatures { +@@ -508,21 +514,22 @@ class CheckedFeatures { * available only on the Microsoft Windows platform. * " */ @@ -83182,7 +83180,7 @@ index 168631895..e2f3a1347 100644 // listening connectors /* -@@ -546,21 +553,22 @@ class CheckedFeatures { +@@ -534,21 +541,22 @@ class CheckedFeatures { * It is available only on the Microsoft Windows platform. * " */ @@ -83220,7 +83218,7 @@ index 168631895..e2f3a1347 100644 // launching connectors /* -@@ -575,78 +583,82 @@ class CheckedFeatures { +@@ -563,78 +571,82 @@ class CheckedFeatures { * Windows, the shared memory transport is used. On Linux the socket transport is used. * " */ @@ -83884,14 +83882,13 @@ index 000000000..399cdbb25 + } +} diff --git a/test/jdk/java/foreign/callarranger/platform/PlatformLayouts.java b/test/jdk/java/foreign/callarranger/platform/PlatformLayouts.java -index 97856075b..c6d6fa8ef 100644 +index 48ca23bef..26ebd13e7 100644 --- a/test/jdk/java/foreign/callarranger/platform/PlatformLayouts.java +++ b/test/jdk/java/foreign/callarranger/platform/PlatformLayouts.java -@@ -23,6 +23,13 @@ - * questions. - * +@@ -21,6 +21,12 @@ + * questions. */ -+ + +/* + * This file has been modified by Loongson Technology in 2023, These + * modifications are Copyright (c) 2022, 2023, Loongson Technology, and are made @@ -83901,7 +83898,7 @@ index 97856075b..c6d6fa8ef 100644 package platform; import jdk.internal.foreign.abi.SharedUtils; -@@ -305,4 +312,56 @@ public final class PlatformLayouts { +@@ -303,4 +309,56 @@ public final class PlatformLayouts { public static final AddressLayout C_POINTER = SharedUtils.C_POINTER; } @@ -84243,5 +84240,5 @@ index 000000000..1ee6649cd + } +} -- -2.43.0 +2.33.0 diff --git a/openjdk-21.spec b/openjdk-21.spec index c2e74a4e25582ca70c9370e4106f13c0b86337d1..d7e8e1eb3a9a9d1e8f43e6c3cc669a35d647459e 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: 2 +Release: 3 # 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 @@ -1918,6 +1918,9 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect %changelog +* Tue Aug 26 2025 songliyang - 1:21.0.8.9-3 +- update LoongArch64 port to 21.0.8 + * Mon Jul 21 2025 Dingli Zhang - 1:21.0.8.9-2 - Fix build error for riscv64