diff --git a/Add-testcase-for-jdk.Deoptimization-and-bug-fixes-fo.patch b/Add-testcase-for-jdk.Deoptimization-and-bug-fixes-fo.patch new file mode 100644 index 0000000000000000000000000000000000000000..e5ae24369483bc5b936b76ac6ef469bd127beecb --- /dev/null +++ b/Add-testcase-for-jdk.Deoptimization-and-bug-fixes-fo.patch @@ -0,0 +1,518 @@ +From dddcf3710813c5d58b9ceadb7518d3509ce39b4e Mon Sep 17 00:00:00 2001 +From: wuyafang +Date: Wed, 30 Jul 2025 09:44:10 +0800 +Subject: [PATCH] Add testcase for jdk.Deoptimization and bug fixes for appcds + +--- + .../src/cpu/aarch64/vm/globals_aarch64.hpp | 9 +- + .../linux_aarch64/vm/thread_linux_aarch64.cpp | 157 +++++++++++++++++ + .../linux_aarch64/vm/thread_linux_aarch64.hpp | 2 + + hotspot/src/share/vm/runtime/globals.hpp | 7 - + hotspot/src/share/vm/runtime/thread.cpp | 159 +----------------- + .../compiler/TestCompilerDeoptimization.java | 58 +++++++ + test/lib/jdk/test/lib/jfr/EventNames.java | 1 + + 7 files changed, 226 insertions(+), 167 deletions(-) + create mode 100644 jdk/test/jdk/jfr/event/compiler/TestCompilerDeoptimization.java + +diff --git a/hotspot/src/cpu/aarch64/vm/globals_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/globals_aarch64.hpp +index 7c6b24879..0fe5351e2 100644 +--- a/hotspot/src/cpu/aarch64/vm/globals_aarch64.hpp ++++ b/hotspot/src/cpu/aarch64/vm/globals_aarch64.hpp +@@ -92,7 +92,7 @@ define_pd_global(intx, InlineSmallCode, 1000); + "Use CRC32 instructions for CRC32 computation") \ + experimental(bool, UseLSE, false, \ + "Use LSE instructions") \ +- product(bool, UseSIMDForMemoryOps, false, \ ++ product(bool, UseSIMDForMemoryOps, false, \ + "Use SIMD instructions in generated memory move code") \ + product(bool, AvoidUnalignedAccesses, false, \ + "Avoid generating unaligned memory accesses") \ +@@ -100,6 +100,11 @@ define_pd_global(intx, InlineSmallCode, 1000); + "Use DC ZVA for block zeroing") \ + product(intx, BlockZeroingLowLimit, 256, \ + "Minimum size in bytes when block zeroing will be used") \ +- product(bool, TraceTraps, false, "Trace all traps the signal handler") ++ product(bool, TraceTraps, false, "Trace all traps the signal handler")\ ++ product(ccstr, AutoSharedArchivePath, NULL, \ ++ "Auto enable the AppCDS feature" \ ++ "the path save classlist and jsa file") \ ++ product(bool, PrintAutoAppCDS, false, \ ++ "Print some information about AutoSharedArchivePath") + + #endif // CPU_AARCH64_VM_GLOBALS_AARCH64_HPP +diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp +index 56e904c68..8a58b4166 100644 +--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp ++++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp +@@ -23,10 +23,13 @@ + */ + + #include "precompiled.hpp" ++#include "memory/allocation.hpp" + #include "runtime/frame.inline.hpp" + #include "runtime/thread.inline.hpp" + #include "runtime/arguments.hpp" + ++#include ++ + // For Forte Analyzer AsyncGetCallTrace profiling support - thread is + // currently interrupted by SIGPROF + bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, +@@ -206,3 +209,157 @@ bool JavaThread::pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava) + + void JavaThread::cache_global_variables() { } + ++static char* get_java_executable_path() { ++ const char* java_home = Arguments::get_property("java.home"); ++ if (java_home != NULL) { ++ char* path = NEW_C_HEAP_ARRAY(char, MAXPATHLEN, mtInternal); ++ jio_snprintf(path, MAXPATHLEN, "%s/bin/java", java_home); ++ return path; ++ } ++ return os::strdup("java"); ++} ++ ++static char* get_complete_classpath() { ++ const char* env_cp = Arguments::get_property("env.class.path"); ++ if (env_cp == NULL || env_cp[0] == '\0') { ++ env_cp = Arguments::get_property("java.class.path"); ++ } ++ return (char *)env_cp; ++} ++ ++static bool can_read_classlist(const char* class_list_path) { ++ int fd = open(class_list_path, O_RDONLY); ++ if (fd >= 0) { ++ if (flock(fd, LOCK_EX | LOCK_NB) == 0) { ++ return true; ++ } ++ } ++ return false; ++} ++ ++static void construct_path(char *dest, size_t dest_size, const char *base, const char *suffix) { ++ size_t base_len = strlen(base); ++ size_t suffix_len = strlen(suffix); ++ guarantee(base_len + suffix_len < dest_size, "base path too long!"); ++ ++ jio_snprintf(dest, dest_size, "%s%s", base, suffix); ++} ++ ++static void create_jsa(const char* class_list_path, const char* appcds_path, const JavaVMInitArgs* original_args) { ++ pid_t pid = fork(); ++ if (pid == 0) { ++ // child process running on background ++ setsid(); ++ signal(SIGHUP, SIG_IGN); ++ const char* classpath = get_complete_classpath(); ++ if (classpath == NULL) { ++ classpath = "."; ++ } ++ char* java_path = get_java_executable_path(); ++ int arg_count = Arguments::num_jvm_args(); ++ char** vm_args = Arguments::jvm_args_array(); ++ ++ int total_args = arg_count + 8; ++ char** args = NEW_C_HEAP_ARRAY(char*, total_args + 1, mtInternal); ++ int idx = 0; ++ ++ args[idx++] = java_path; ++ args[idx++] = os::strdup("-Xshare:dump"); ++ args[idx++] = os::strdup("-XX:+UseAppCDS"); ++ ++ char shared_class_list_file[PATH_MAX]; ++ char shared_archive_file[PATH_MAX]; ++ construct_path(shared_class_list_file, sizeof(shared_class_list_file), "-XX:SharedClassListFile=", class_list_path); ++ construct_path(shared_archive_file, sizeof(shared_archive_file), "-XX:SharedArchiveFile=", appcds_path); ++ ++ args[idx++] = strdup(shared_class_list_file); ++ args[idx++] = strdup(shared_archive_file); ++ ++ args[idx++] = os::strdup("-classpath"); ++ args[idx++] = os::strdup(classpath); ++ for (int i = 0; i < arg_count; i++) { ++ if (vm_args[i] != NULL) { ++ args[idx++] = os::strdup(vm_args[i]); ++ } ++ } ++ args[idx++] = os::strdup("-version"); ++ args[idx] = NULL; ++ ++ if (PrintAutoAppCDS) { ++ int i = 0; ++ while (args[i] != NULL) { ++ tty->print_cr("args[%d] = %s", i, args[i]); ++ i++; ++ } ++ } ++ execv(java_path, args); ++ } ++} ++ ++void JavaThread::handle_appcds_for_executor(const JavaVMInitArgs* args) { ++ if (FLAG_IS_DEFAULT(AutoSharedArchivePath)) { ++ return; ++ } ++ ++ if (AutoSharedArchivePath == NULL) { ++ warning("AutoSharedArchivePath should not be empty. Please set the specific path."); ++ return; ++ } ++ ++ static char base_path[JVM_MAXPATHLEN] = {'\0'}; ++ jio_snprintf(base_path, sizeof(base_path), "%s", AutoSharedArchivePath); ++ ++ struct stat st; ++ if (stat(base_path, &st) != 0) { ++ if (mkdir(base_path, 0755) != 0) { ++ vm_exit_during_initialization(err_msg("can't create dirs %s : %s", base_path, strerror(errno))); ++ } ++ } ++ ++ char class_list_path[PATH_MAX]; ++ char appcds_path[PATH_MAX]; ++ ++ construct_path(class_list_path, sizeof(class_list_path), base_path, "/appcds.lst"); ++ construct_path(appcds_path, sizeof(appcds_path), base_path, "/appcds.jsa"); ++ ++ if (PrintAutoAppCDS) { ++ tty->print_cr("classlist file : %s", class_list_path); ++ tty->print_cr("jsa file : %s", appcds_path); ++ } ++ ++ const char* class_list_ptr = class_list_path; ++ const char* appcds_ptr = appcds_path; ++ ++ if (stat(appcds_path, &st) == 0) { ++ FLAG_SET_CMDLINE(bool, UseAppCDS, true); ++ FLAG_SET_CMDLINE(bool, UseSharedSpaces, true); ++ FLAG_SET_CMDLINE(bool, RequireSharedSpaces, true); ++ CommandLineFlags::ccstrAtPut("SharedArchiveFile", &appcds_ptr, Flag::COMMAND_LINE); ++ if (PrintAutoAppCDS) { ++ tty->print_cr("Use AppCDS JSA."); ++ } ++ return; ++ } ++ ++ if (stat(class_list_path, &st) == 0) { ++ if (!can_read_classlist(class_list_path)) { ++ if(PrintAutoAppCDS) { ++ tty->print_cr("classlist is generating."); ++ } ++ return; ++ } ++ if (stat(appcds_path, &st) != 0) { ++ if (PrintAutoAppCDS) { ++ tty->print_cr("Create JSA file."); ++ } ++ create_jsa(class_list_path, appcds_path, args); ++ } ++ } else { ++ can_read_classlist(class_list_path); ++ FLAG_SET_CMDLINE(bool, UseAppCDS, true); ++ FLAG_SET_CMDLINE(bool, UseSharedSpaces, false); ++ FLAG_SET_CMDLINE(bool, RequireSharedSpaces, false); ++ CommandLineFlags::ccstrAtPut("DumpLoadedClassList", &class_list_ptr, Flag::COMMAND_LINE); ++ } ++} ++ +diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp +index f14ace0d3..f519ca448 100644 +--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp ++++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp +@@ -80,4 +80,6 @@ public: + static void enable_register_stack_guard() {} + static void disable_register_stack_guard() {} + ++ static void handle_appcds_for_executor(const JavaVMInitArgs* args); ++ + #endif // OS_CPU_LINUX_AARCH64_VM_THREAD_LINUX_AARCH64_HPP +diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp +index 69aadbf37..801ea99e1 100644 +--- a/hotspot/src/share/vm/runtime/globals.hpp ++++ b/hotspot/src/share/vm/runtime/globals.hpp +@@ -2757,13 +2757,6 @@ class CommandLineFlags { + product(bool, PrintFlagsFinal, false, \ + "Print all VM flags after argument and ergonomic processing") \ + \ +- product(ccstr, AutoSharedArchivePath, NULL, \ +- "Auto enable the AppCDS feature" \ +- "the path save classlist and jsa file") \ +- \ +- product(bool, PrintAutoAppCDS, false, \ +- "Print some information about AutoSharedArchivePath") \ +- \ + notproduct(bool, PrintFlagsWithComments, false, \ + "Print all VM flags with default values and descriptions and " \ + "exit") \ +diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp +index f0d7e3312..9187a909a 100644 +--- a/hotspot/src/share/vm/runtime/thread.cpp ++++ b/hotspot/src/share/vm/runtime/thread.cpp +@@ -38,7 +38,6 @@ + #include "jprofilecache/jitProfileCache.hpp" + #include "jprofilecache/jitProfileCacheThread.hpp" + #include "jprofilecache/jitProfileCacheDcmds.hpp" +-#include "memory/allocation.hpp" + #include "memory/gcLocker.inline.hpp" + #include "memory/metaspaceShared.hpp" + #include "memory/oopFactory.hpp" +@@ -123,8 +122,6 @@ + #include "jfr/jfr.hpp" + #endif + +-#include +- + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + + #ifdef DTRACE_ENABLED +@@ -3366,160 +3363,6 @@ void Threads::threads_do(ThreadClosure* tc) { + // If CompilerThreads ever become non-JavaThreads, add them here + } + +-static char* get_java_executable_path() { +- const char* java_home = Arguments::get_property("java.home"); +- if (java_home != NULL) { +- char* path = NEW_C_HEAP_ARRAY(char, MAXPATHLEN, mtInternal); +- jio_snprintf(path, MAXPATHLEN, "%s/bin/java", java_home); +- return path; +- } +- return os::strdup("java"); +-} +- +-static char* get_complete_classpath() { +- const char* env_cp = Arguments::get_property("env.class.path"); +- if (env_cp == NULL || env_cp[0] == '\0') { +- env_cp = Arguments::get_property("java.class.path"); +- } +- return (char *)env_cp; +-} +- +-static bool can_read_classlist(const char* class_list_path) { +- int fd = open(class_list_path, O_RDONLY); +- if (fd >= 0) { +- if (flock(fd, LOCK_EX | LOCK_NB) == 0) { +- return true; +- } +- } +- return false; +-} +- +-static void construct_path(char *dest, size_t dest_size, const char *base, const char *suffix) { +- size_t base_len = strlen(base); +- size_t suffix_len = strlen(suffix); +- guarantee(base_len + suffix_len < dest_size, "base path too long!"); +- +- jio_snprintf(dest, dest_size, "%s%s", base, suffix); +-} +- +-static void create_jsa(const char* class_list_path, const char* appcds_path, const JavaVMInitArgs* original_args) { +- pid_t pid = fork(); +- if (pid == 0) { +- // child process running on background +- setsid(); +- signal(SIGHUP, SIG_IGN); +- const char* classpath = get_complete_classpath(); +- if (classpath == NULL) { +- classpath = "."; +- } +- char* java_path = get_java_executable_path(); +- int arg_count = Arguments::num_jvm_args(); +- char** vm_args = Arguments::jvm_args_array(); +- +- int total_args = arg_count + 8; +- char** args = NEW_C_HEAP_ARRAY(char*, total_args + 1, mtInternal); +- int idx = 0; +- +- args[idx++] = java_path; +- args[idx++] = os::strdup("-Xshare:dump"); +- args[idx++] = os::strdup("-XX:+UseAppCDS"); +- +- char shared_class_list_file[PATH_MAX]; +- char shared_archive_file[PATH_MAX]; +- construct_path(shared_class_list_file, sizeof(shared_class_list_file), "-XX:SharedClassListFile=", class_list_path); +- construct_path(shared_archive_file, sizeof(shared_archive_file), "-XX:SharedArchiveFile=", appcds_path); +- +- args[idx++] = strdup(shared_class_list_file); +- args[idx++] = strdup(shared_archive_file); +- +- args[idx++] = os::strdup("-classpath"); +- args[idx++] = os::strdup(classpath); +- for (int i = 0; i < arg_count; i++) { +- if (vm_args[i] != NULL) { +- args[idx++] = os::strdup(vm_args[i]); +- } +- } +- args[idx++] = os::strdup("-version"); +- args[idx] = NULL; +- +- if (PrintAutoAppCDS) { +- int i = 0; +- while (args[i] != NULL) { +- tty->print_cr("args[%d] = %s", i, args[i]); +- i++; +- } +- } +- execv(java_path, args); +- } +-} +- +-static void handle_appcds_for_executor(const JavaVMInitArgs* args) { +- if (FLAG_IS_DEFAULT(AutoSharedArchivePath)) { +- return; +- } +- +- if (AutoSharedArchivePath == NULL) { +- warning("AutoSharedArchivePath should not be empty. Please set the specific path."); +- return; +- } +- +- static char base_path[JVM_MAXPATHLEN] = {'\0'}; +- jio_snprintf(base_path, sizeof(base_path), "%s", AutoSharedArchivePath); +- +- struct stat st; +- if (stat(base_path, &st) != 0) { +- if (mkdir(base_path, 0755) != 0) { +- vm_exit_during_initialization(err_msg("can't create dirs %s : %s", base_path, strerror(errno))); +- } +- } +- +- char class_list_path[PATH_MAX]; +- char appcds_path[PATH_MAX]; +- +- construct_path(class_list_path, sizeof(class_list_path), base_path, "/appcds.lst"); +- construct_path(appcds_path, sizeof(appcds_path), base_path, "/appcds.jsa"); +- +- if (PrintAutoAppCDS) { +- tty->print_cr("classlist file : %s", class_list_path); +- tty->print_cr("jsa file : %s", appcds_path); +- } +- +- const char* class_list_ptr = class_list_path; +- const char* appcds_ptr = appcds_path; +- +- if (stat(appcds_path, &st) == 0) { +- FLAG_SET_CMDLINE(bool, UseAppCDS, true); +- FLAG_SET_CMDLINE(bool, UseSharedSpaces, true); +- FLAG_SET_CMDLINE(bool, RequireSharedSpaces, true); +- CommandLineFlags::ccstrAtPut("SharedArchiveFile", &appcds_ptr, Flag::COMMAND_LINE); +- if (PrintAutoAppCDS) { +- tty->print_cr("Use AppCDS JSA."); +- } +- return; +- } +- +- if (stat(class_list_path, &st) == 0) { +- if (!can_read_classlist(class_list_path)) { +- if(PrintAutoAppCDS) { +- tty->print_cr("classlist is generating."); +- } +- return; +- } +- if (stat(appcds_path, &st) != 0) { +- if (PrintAutoAppCDS) { +- tty->print_cr("Create JSA file."); +- } +- create_jsa(class_list_path, appcds_path, args); +- } +- } else { +- can_read_classlist(class_list_path); +- FLAG_SET_CMDLINE(bool, UseAppCDS, true); +- FLAG_SET_CMDLINE(bool, UseSharedSpaces, false); +- FLAG_SET_CMDLINE(bool, RequireSharedSpaces, false); +- CommandLineFlags::ccstrAtPut("DumpLoadedClassList", &class_list_ptr, Flag::COMMAND_LINE); +- } +-} +- + jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) { + + extern void JDK_Version_init(); +@@ -3555,7 +3398,7 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) { + + os::init_before_ergo(); + +- handle_appcds_for_executor(args); ++ AARCH64_ONLY(JavaThread::handle_appcds_for_executor(args);) + + jint ergo_result = Arguments::apply_ergo(); + if (ergo_result != JNI_OK) return ergo_result; +diff --git a/jdk/test/jdk/jfr/event/compiler/TestCompilerDeoptimization.java b/jdk/test/jdk/jfr/event/compiler/TestCompilerDeoptimization.java +new file mode 100644 +index 000000000..9c3930242 +--- /dev/null ++++ b/jdk/test/jdk/jfr/event/compiler/TestCompilerDeoptimization.java +@@ -0,0 +1,58 @@ ++/* ++ * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package jdk.jfr.event.compiler; ++ ++import java.util.List; ++ ++import jdk.jfr.Recording; ++import jdk.jfr.consumer.RecordedEvent; ++import jdk.test.lib.jfr.EventNames; ++import jdk.test.lib.jfr.Events; ++ ++/** ++* @test ++* @key jfr ++* ++* @library /test/lib / ++* @run main/othervm jdk.jfr.event.compiler.TestCompilerDeoptimization ++ */ ++public class TestCompilerDeoptimization { ++ private final static String EVENT_NAME = EventNames.CompilerStatistics; ++ ++ public static void main(String[] args) throws Exception { ++ Recording recording = new Recording(); ++ recording.enable(EVENT_NAME); ++ recording.start(); ++ recording.stop(); ++ ++ List events = Events.fromRecording(recording); ++ Events.hasEvents(events); ++ for (RecordedEvent event : events) { ++ System.out.println("Event:" + event); ++ Events.assertField(event, "deoptimizationCount").atLeast(0); ++ } ++ } ++} +\ No newline at end of file +diff --git a/test/lib/jdk/test/lib/jfr/EventNames.java b/test/lib/jdk/test/lib/jfr/EventNames.java +index 3f37ecb88..d954d5436 100644 +--- a/test/lib/jdk/test/lib/jfr/EventNames.java ++++ b/test/lib/jdk/test/lib/jfr/EventNames.java +@@ -146,6 +146,7 @@ public class EventNames { + public final static String CodeCacheFull = PREFIX + "CodeCacheFull"; + public final static String ObjectAllocationInNewTLAB = PREFIX + "ObjectAllocationInNewTLAB"; + public final static String ObjectAllocationOutsideTLAB = PREFIX + "ObjectAllocationOutsideTLAB"; ++ public final static String Deoptimization = PREFIX + "Deoptimization"; + + // OS + public final static String OSInformation = PREFIX + "OSInformation"; +-- +2.49.0 + diff --git a/openjdk-1.8.0.spec b/openjdk-1.8.0.spec index d1deb57ba52f1eacef7f7a8a27fda6f2b6856636..a09665b98095dd3e8ba8f3c38c8901fc122e3137 100644 --- a/openjdk-1.8.0.spec +++ b/openjdk-1.8.0.spec @@ -953,7 +953,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 1 +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 # also included the epoch in their virtual provides. This created a @@ -1215,10 +1215,10 @@ Patch301: fix-SUSE-x86_32-build-failure.patch Patch302: fix-the-issue-that-cert-of-geotrustglobalca-expired.patch # 8u372 -Patch303: 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch -Patch304: jcmd-mnt-add-start-time-and-end-time.patch -Patch305: Fix-localtime_r-not-defined-on-windows.patch -Patch306: 8057743-process-Synchronize-exiting-of-threads-and-p.patch +Patch303: 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +Patch304: jcmd-mnt-add-start-time-and-end-time.patch +Patch305: Fix-localtime_r-not-defined-on-windows.patch +Patch306: 8057743-process-Synchronize-exiting-of-threads-and-p.patch Patch307: 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch Patch308: 0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch Patch309: 0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch @@ -1382,6 +1382,7 @@ Patch470: Backport-8296924-C2-assert-is_valid_AArch64_address-dest.targ.patch #462 Patch471: Fix-tests-for-OS-with-64k-page-size.patch +Patch472: Add-testcase-for-jdk.Deoptimization-and-bug-fixes-fo.patch ############################################# # @@ -2068,6 +2069,7 @@ pushd %{top_level_dir_name} %patch469 -p1 %patch470 -p1 %patch471 -p1 +%patch472 -p1 %endif %ifarch loongarch64 @@ -2352,7 +2354,6 @@ pushd %{top_level_dir_name} %patch400 -p1 %patch401 -p1 %patch402 -p1 -%patch403 -p1 %patch404 -p1 %patch405 -p1 %patch406 -p1 @@ -2529,7 +2530,7 @@ bash ${top_srcdir_abs_path}/configure \ --with-debug-level=$debugbuild \ %ifnarch sw_64 --enable-unlimited-crypto \ -%endif +%endif %ifarch aarch64 --enable-kae \ %endif @@ -2649,7 +2650,7 @@ done # Make sure gdb can do a backtrace based on line numbers on libjvm.so # javaCalls.cpp:58 should map to: -# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 +# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 # Using line number 1 might cause build problems. %ifnarch loongarch64 gdb -q "$JAVA_HOME/bin/java" < -1:1.8.0.462.b08-3 +- add Add-testcase-for-jdk.Deoptimization-and-bug-fixes-fo.patch + +* Mon Jul 21 2025 Dingli Zhang -1:1.8.0.462.b08-2 +- Fix build errors for riscv64 due to missed patch403 removal + * Thu July 17 2025 DXwangg -1:1.8.0.462.b08-1 - deleted 8193682-Infinite-loop-in-ZipOutputStream.close.patch - modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch @@ -3152,7 +3159,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - fix changelog date error * Tue Aug 6 2024 benshuai5D -1:1.8.0.422-b05.5 -- modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch +- modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch * Sat Aug 3 2024 kuenking111 -1:1.8.0.422-b05.4 - Add 8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch @@ -3438,7 +3445,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - 0055-Fix-CodelistTest.java-Failed-to-Execute-CodelistTest.patch * Thu May 11 2023 crash888 - 1:1.8.0.372-b07.1 -- modified Fix-the-crash-that-occurs-when-the-process-exits-due.patch +- modified Fix-the-crash-that-occurs-when-the-process-exits-due.patch * Sat May 6 2023 crash888 - 1:1.8.0.372-b07.0 - deleted Add-ability-to-configure-third-port-for-remote-JMX.patch @@ -3456,10 +3463,10 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - modified add-missing-test-case.patch - modified fix-the-issue-that-cert-of-geotrustglobalca-expired.patch - modified fix_X509TrustManagerImpl_symantec_distrust.patch -- add 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch -- add jcmd-mnt-add-start-time-and-end-time.patch -- add Fix-localtime_r-not-defined-on-windows.patch -- add 8057743-process-Synchronize-exiting-of-threads-and-p.patch +- add 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +- add jcmd-mnt-add-start-time-and-end-time.patch +- add Fix-localtime_r-not-defined-on-windows.patch +- add 8057743-process-Synchronize-exiting-of-threads-and-p.patch - add 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch - upgrade to jdk8u372-b07 @@ -3663,7 +3670,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - modified implementation_of_Blas_hotspot_function_in_Intrinsics.patch * Tue Feb 15 2022 eapen - 1:1.8.0.322-b06.1 -- fix makes failure when gcc version is lower than 8 +- fix makes failure when gcc version is lower than 8 * Thu Feb 10 2022 eapen - 1:1.8.0.322-b06.0 - upgrade to 8u322-b06(ga) @@ -3939,7 +3946,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect * Tue Nov 10 2020 ow_wo - 1:1.8.0.272-b10.6 - add 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch -- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch +- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch * Mon Nov 09 2020 ow_wo - 1:1.8.0.272-b10.5 - add 8223940-Private-key-not-supported-by-chosen-signature.patch @@ -4017,7 +4024,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - Add Ddot-intrinsic-implement.patch - Add 8234003-Improve-IndexSet-iteration.patch - Add 8220159-Optimize-various-RegMask-operations-by-introducing-watermarks.patch -- Remove prohibition-of-irreducible-loop-in-mergers.patch +- Remove prohibition-of-irreducible-loop-in-mergers.patch * Tue Aug 25 2020 noah - 1:1.8.0.265-b10.0 - Update to aarch64-shenandoah-jdk8u-8u265-b01