From e98df71d9c5120fbb73a4c2f49863775fe5db781 Mon Sep 17 00:00:00 2001 From: Calvin Cheung Date: Fri, 28 Feb 2025 17:08:25 +0000 Subject: [PATCH] 8348028: Unable to run gtests with CDS enabled Reviewed-by: dholmes, iklam, ihse --- make/hotspot/lib/CompileJvm.gmk | 1 + src/hotspot/os/bsd/os_bsd.cpp | 12 +----------- src/hotspot/share/cds/cdsConfig.cpp | 8 +++----- src/hotspot/share/runtime/abstract_vm_version.cpp | 8 ++++++++ src/hotspot/share/runtime/abstract_vm_version.hpp | 3 ++- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index b2c59505f9a..6b5edc85b23 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -89,6 +89,7 @@ CFLAGS_VM_VERSION := \ -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \ -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \ -DHOTSPOT_BUILD_TIME='"$(HOTSPOT_BUILD_TIME)"' \ + -DJVM_VARIANT='"$(JVM_VARIANT)"' \ # ################################################################################ diff --git a/src/hotspot/os/bsd/os_bsd.cpp b/src/hotspot/os/bsd/os_bsd.cpp index c538c54e86f..faa3efa2384 100644 --- a/src/hotspot/os/bsd/os_bsd.cpp +++ b/src/hotspot/os/bsd/os_bsd.cpp @@ -242,16 +242,6 @@ static char cpu_arch[] = "ppc"; #error Add appropriate cpu_arch setting #endif -// JVM variant -#if defined(ZERO) - #define JVM_VARIANT "zero" -#elif defined(COMPILER2) - #define JVM_VARIANT "server" -#else - #define JVM_VARIANT "client" -#endif - - void os::Bsd::initialize_system_info() { int mib[2]; size_t len; @@ -1558,7 +1548,7 @@ void os::jvm_path(char *buf, jint buflen) { // Add the appropriate JVM variant subdir len = strlen(buf); jrelib_p = buf + len; - snprintf(jrelib_p, buflen-len, "/%s", JVM_VARIANT); + snprintf(jrelib_p, buflen-len, "/%s", Abstract_VM_Version::vm_variant()); if (0 != access(buf, F_OK)) { snprintf(jrelib_p, buflen-len, "%s", ""); } diff --git a/src/hotspot/share/cds/cdsConfig.cpp b/src/hotspot/share/cds/cdsConfig.cpp index 1bb842af953..a5c5742eaf2 100644 --- a/src/hotspot/share/cds/cdsConfig.cpp +++ b/src/hotspot/share/cds/cdsConfig.cpp @@ -89,12 +89,10 @@ void CDSConfig::initialize() { char* CDSConfig::default_archive_path() { if (_default_archive_path == nullptr) { - char jvm_path[JVM_MAXPATHLEN]; - os::jvm_path(jvm_path, sizeof(jvm_path)); - char *end = strrchr(jvm_path, *os::file_separator()); - if (end != nullptr) *end = '\0'; stringStream tmp; - tmp.print("%s%sclasses", jvm_path, os::file_separator()); + const char* subdir = WINDOWS_ONLY("bin") NOT_WINDOWS("lib"); + tmp.print("%s%s%s%s%s%sclasses", Arguments::get_java_home(), os::file_separator(), subdir, + os::file_separator(), Abstract_VM_Version::vm_variant(), os::file_separator()); #ifdef _LP64 if (!UseCompressedOops) { tmp.print_raw("_nocoops"); diff --git a/src/hotspot/share/runtime/abstract_vm_version.cpp b/src/hotspot/share/runtime/abstract_vm_version.cpp index 0776d501339..05cccd4fe45 100644 --- a/src/hotspot/share/runtime/abstract_vm_version.cpp +++ b/src/hotspot/share/runtime/abstract_vm_version.cpp @@ -81,6 +81,10 @@ VirtualizationType Abstract_VM_Version::_detected_virtualization = NoDetectedVir #error HOTSPOT_BUILD_TIME must be defined #endif +#ifndef JVM_VARIANT + #error JVM_VARIANT must be defined +#endif + #define VM_RELEASE HOTSPOT_VERSION_STRING // HOTSPOT_VERSION_STRING equals the JDK VERSION_STRING (unless overridden @@ -195,6 +199,10 @@ const char *Abstract_VM_Version::vm_platform_string() { return OS "-" CPU; } +const char* Abstract_VM_Version::vm_variant() { + return JVM_VARIANT; +} + const char* Abstract_VM_Version::internal_vm_info_string() { #ifndef HOTSPOT_BUILD_COMPILER #ifdef _MSC_VER diff --git a/src/hotspot/share/runtime/abstract_vm_version.hpp b/src/hotspot/share/runtime/abstract_vm_version.hpp index 491d8a49dae..8cfc7031f97 100644 --- a/src/hotspot/share/runtime/abstract_vm_version.hpp +++ b/src/hotspot/share/runtime/abstract_vm_version.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 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 @@ -110,6 +110,7 @@ class Abstract_VM_Version: AllStatic { static const char* vm_info_string(); static const char* vm_release(); static const char* vm_platform_string(); + static const char* vm_variant(); static int vm_major_version() { return _vm_major_version; } static int vm_minor_version() { return _vm_minor_version; }