Skip to content

[GR-65034] Update labsjdk to 25+23-jvmci-b01 #11217

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 62 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
fc9613d
Automatic merge of master into galahad
OracleLabsAutomation May 8, 2025
c8127f2
Automatic merge of master into galahad
OracleLabsAutomation May 8, 2025
aa51997
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
affcf8b
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
94c9936
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
2fbc23e
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
e326e8d
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
b5ea90a
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
41bb131
Adapt JDK-8353232: Standardizing and Unifying XML Component Configura…
mur47x111 May 7, 2025
aa015d0
Update galahad jdk
mur47x111 May 7, 2025
289234c
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
d70ef83
[JDK-8356437] Adapt JDK-8353232: Standardizing and Unifying XML Compo…
mur47x111 May 9, 2025
3a1e6f2
Automatic merge of master into galahad
OracleLabsAutomation May 9, 2025
a4e0664
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
5fd7b05
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
f0acc5f
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
cdd8e5d
Adapt JDK-8352675: Support Intel AVX10 converged vector ISA feature d…
mur47x111 Apr 3, 2025
15533cd
Update galahad jdk.
mur47x111 Apr 3, 2025
462fe98
[JDK-8353630] Adapt JDK-8352675: Support Intel AVX10 converged vector…
mur47x111 May 10, 2025
13d3c27
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
4afce24
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
8f10f9e
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
1a853d1
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
81de8c1
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
e02875f
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
7ff8842
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
f752774
Automatic merge of master into galahad
OracleLabsAutomation May 10, 2025
0530269
Automatic merge of master into galahad
OracleLabsAutomation May 11, 2025
45bd55b
Manual merge from master
dougxc May 12, 2025
a172800
[GR-64919] Fix master-to-galahad merge conflict 12.05.2025
dougxc May 12, 2025
46d5532
Automatic merge of master into galahad
OracleLabsAutomation May 12, 2025
71dc2df
Automatic merge of master into galahad
OracleLabsAutomation May 12, 2025
3287016
Automatic merge of master into galahad
OracleLabsAutomation May 12, 2025
9b15e56
Automatic merge of master into galahad
OracleLabsAutomation May 12, 2025
584d4bc
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
3bb92fa
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
19c70ad
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
b92d25f
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
a266638
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
c6b1009
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
e903777
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
2b7954a
Automatic merge of master into galahad
OracleLabsAutomation May 13, 2025
7071372
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
9123273
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
2a00527
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
15eef03
Merge master into galahad
mur47x111 May 14, 2025
b69d8c6
[GR-64999] Fix master-to-galahad merge conflict 14.05.2025
mur47x111 May 14, 2025
12f4716
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
59d8529
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
bd7b170
Automatic merge of master into galahad
OracleLabsAutomation May 14, 2025
5819c9b
Automatic merge of master into galahad
OracleLabsAutomation May 15, 2025
f3cdc92
Automatic merge of master into galahad
OracleLabsAutomation May 15, 2025
b70b9b8
Automatic merge of master into galahad
OracleLabsAutomation May 15, 2025
a2dffaa
update JVMCI to 25+23-jvmci-b01
OracleLabsAutomation May 15, 2025
89ec170
Merge tag 'jdk-25+23' into labsjdk/adopt-25+23-master
jovanstevanovic May 16, 2025
6117099
Update JVMCI version.
jovanstevanovic May 16, 2025
99d51ae
svm 8301971: Make JDK source code UTF-8.
jovanstevanovic May 16, 2025
8c2f16f
Update BasedOnJDKFile annotation.
jovanstevanovic May 16, 2025
939d8bb
deploy labsjdk snapshots
marwan-hallaoui May 16, 2025
1c9f311
Style changes.
jovanstevanovic May 19, 2025
0514146
Add missing configuration for native-unit and unit tests.
jovanstevanovic May 19, 2025
935ab2f
Merge branch 'master' into labsjdk/adopt-25+23-master
jovanstevanovic May 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions common.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
"jdks": {
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+22-2657", "platformspecific": true, "extrabundles": ["static-libs"]},
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+23-2725", "platformspecific": true, "extrabundles": ["static-libs"]},

"oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true },
Expand Down Expand Up @@ -45,13 +45,13 @@

"oraclejdk23": {"name": "jpg-jdk", "version": "23", "build_id": "jdk-23+37", "platformspecific": true, "extrabundles": ["static-libs"]},

"oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+22", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+22-jvmci-b01", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+22-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+22-jvmci-b01-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+22-jvmci-b01", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+22-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+22-jvmci-b01-sulong", "platformspecific": true }
"oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+23", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+23-jvmci-b01", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+23-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+23-jvmci-b01-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+23-jvmci-b01", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+23-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+23-jvmci-b01-sulong", "platformspecific": true }
},

"eclipse": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public final class JVMCIVersionCheck {
*/
private static final Map<String, Map<String, Version>> JVMCI_MIN_VERSIONS = Map.of(
"25", Map.of(
"Oracle Corporation", createLabsJDKVersion("25+22", 1),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+22", 1)));
"Oracle Corporation", createLabsJDKVersion("25+23", 1),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+23", 1)));
private static final int NA = 0;
/**
* Minimum Java release supported by Graal.
Expand Down
14 changes: 13 additions & 1 deletion substratevm/mx.substratevm/mx_substratevm.py
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,9 @@ def run_nic_conditional_config_test(agent_path, conditional_config_filter_path):
'experimental-conditional-config-part']
jvm_unittest(['-agentpath:' + agent_path + '=' + ','.join(agent_opts),
'-Dcom.oracle.svm.configure.test.conditionalconfig.PartialConfigurationGenerator.enabled=true',
'--add-exports=jdk.graal.compiler/jdk.graal.compiler.options=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED',
'com.oracle.svm.configure.test.conditionalconfig.PartialConfigurationGenerator#' + test_case])
config_output_dir = join(nic_test_dir, 'config-output')
nic_exe = mx.cmd_suffix(join(mx.JDKConfig(home=mx_sdk_vm_impl.graalvm_output()).home, 'bin', 'native-image-configure'))
Expand All @@ -621,6 +624,9 @@ def run_nic_conditional_config_test(agent_path, conditional_config_filter_path):
jvm_unittest(
['-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier.configpath=' + config_output_dir,
"-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier.enabled=true",
'--add-exports=jdk.graal.compiler/jdk.graal.compiler.options=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED',
'com.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier'])


Expand All @@ -635,10 +641,16 @@ def run_agent_conditional_config_test(agent_path, conditional_config_filter_path
# This run generates the configuration from different test cases
jvm_unittest(['-agentpath:' + agent_path + '=' + ','.join(agent_opts),
'-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationGenerator.enabled=true',
'--add-exports=jdk.graal.compiler/jdk.graal.compiler.options=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED',
'com.oracle.svm.configure.test.conditionalconfig.ConfigurationGenerator'])
# This run verifies that the generated configuration matches the expected one
jvm_unittest(['-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier.configpath=' + config_dir,
"-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier.enabled=true",
'-Dcom.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier.enabled=true',
'--add-exports=jdk.graal.compiler/jdk.graal.compiler.options=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED',
'--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED',
'com.oracle.svm.configure.test.conditionalconfig.ConfigurationVerifier'])


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
* - substratevm/src/com.oracle.svm.native.libchelper/include/amd64hotspotcpuinfo.h
* - substratevm/src/com.oracle.svm.native.libchelper/src/cpuid.c
*/
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+10/src/hotspot/cpu/x86/vm_version_x86.hpp#L41-L328")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/cpu/x86/vm_version_x86.hpp#L41-L348")
@CLibrary(value = "libchelper", requireStatic = true)
public class AMD64LibCHelper {
@Platforms(Platform.AMD64.class)
Expand Down Expand Up @@ -314,6 +314,14 @@ public interface CPUFeatures extends PointerBase {
@AllowNarrowingCast
@CField
boolean fAVX512_FP16();

@AllowNarrowingCast
@CField
boolean fAVX10_1();

@AllowNarrowingCast
@CField
boolean fAVX10_2();
}
// Checkstyle: resume
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

@CContext(LocaleDirectives.class)
@CLibrary(value = "libchelper", requireStatic = true, dependsOn = "java")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+13/src/java.base/unix/native/libjava/locale_str.h")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/java.base/unix/native/libjava/locale_str.h")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+13/src/java.base/windows/native/libjava/locale_str.h")
class LocaleCHelper {
// Checkstyle: stop
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
// The following annotations are for files in `src/hotspot`, which are copied from the JDK
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/java.base/share/native/include/jni.h")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/java.base/unix/native/include/jni_md.h")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+19/src/hotspot/os/linux/cgroupSubsystem_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/os/linux/cgroupSubsystem_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/cgroupSubsystem_linux.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/cgroupUtil_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/cgroupUtil_linux.hpp")
Expand All @@ -60,7 +60,7 @@
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/osContainer_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/osContainer_linux.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/os/linux/os_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/os/linux/os_linux.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/os_linux.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/linux/os_linux.inline.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/posix/include/jvm_md.h")
Expand All @@ -78,13 +78,13 @@
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+22/src/hotspot/share/utilities/compilerWarnings_gcc.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+22/src/hotspot/share/utilities/compilerWarnings.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/globalDefinitions_gcc.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/utilities/globalDefinitions.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/share/utilities/globalDefinitions.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/utilities/macros.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/ostream.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/utilities/ostream.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/share/utilities/ostream.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/share/utilities/ostream.hpp")
// The following annotations are for files in `src/svm`, which are completely customized for SVM
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/logging/log.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/memory/allocation.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/share/memory/allocation.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+22/src/hotspot/share/runtime/globals.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/utilities/debug.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/debug.hpp")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,31 +30,23 @@

import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;

/**
* Substitution to initialize {@link #catalog} at build time.
* Substitution to initialize {@link #JDKCATALOG} at build time.
*
* JDK-8306055 introduced a built-in Catalog to JDK XML module in JDK 22. Without special treatment,
* the initialization code would pull intermediate types (e.g. {@code CatalogReader}) into the image
* heap. To avoid this, we initialize the catalog at build time and substitute the {@link #init}
* method to be empty.
* heap. To avoid this, we initialize the catalog at build time.
*
* Ideally, we would initialize all of {@code jdk.xml} at run time, but that is too intrusive at the
* current point in time (GR-50683).
*/
@TargetClass(className = "jdk.xml.internal.JdkCatalog")
public final class Target_jdk_xml_internal_JdkCatalog {
@TargetClass(className = "jdk.xml.internal.JdkXmlConfig$CatalogHolder")
public final class Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder {
@Alias //
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Custom, declClass = JdkCatalogSupplier.class, isFinal = true) //
public static Target_javax_xml_catalog_Catalog catalog;

@Substitute
@SuppressWarnings("unused")
public static void init(String resolve) {
// initialized at build time
}
public static Target_javax_xml_catalog_Catalog JDKCATALOG;
}

@TargetClass(className = "javax.xml.catalog.Catalog")
Expand All @@ -75,8 +67,8 @@ final class Target_javax_xml_parsers_SAXParser {
final class JdkCatalogSupplier implements FieldValueTransformer {

/**
* Verifies that {@link Target_jdk_xml_internal_JdkCatalog#catalog} is non-null. The
* initialization is triggered in
* Verifies that {@link Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder#JDKCATALOG} is
* non-null. The initialization is triggered in
* {@code com.oracle.svm.hosted.xml.JavaxXmlClassAndResourcesLoaderFeature#initializeJdkCatalog()}
*/
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import com.oracle.svm.core.SubstrateOptions;
import com.oracle.svm.core.util.BasedOnJDKFile;

@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+6/src/hotspot/share/prims/jvmti.xml")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+23/src/hotspot/share/prims/jvmti.xml")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+11/src/hotspot/share/prims/jvmtiH.xsl")
class JvmtiDirectives implements CContext.Directives {
private final Path jdkIncludeDir = Paths.get(System.getProperty("java.home")).resolve("include");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,16 +74,16 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
}

/**
* Initialize the {@code JdkCatalog#catalog} field. We do this eagerly (instead of e.g. in a
* Initialize the {@code CatalogHolder#catalog} field. We do this eagerly (instead of e.g. in a
* {@link FieldValueTransformer}) to work around a race condition in
* XMLSecurityManager#prepareCatalog (JDK-8350189).
*/
private static void initializeJdkCatalog() {
if (ModuleLayer.boot().findModule("java.xml").isPresent()) {
// Ensure the JdkCatalog#catalog field is initialized.
Class<?> xmlSecurityManager = ReflectionUtil.lookupClass(false, "jdk.xml.internal.XMLSecurityManager");
// Ensure the JdkXmlConfig$CatalogHolder#catalog field is initialized.
Class<?> xmlSecurityManager = ReflectionUtil.lookupClass(false, "jdk.xml.internal.JdkXmlConfig$CatalogHolder");
// The constructor call prepareCatalog which will call JdkCatalog#init.
ReflectionUtil.newInstance(xmlSecurityManager);
ReflectionUtil.readStaticField(xmlSecurityManager, "JDKCATALOG");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,6 @@ typedef struct {
uint8_t fAPX_F;
uint8_t fSHA512;
uint8_t fAVX512_FP16;
uint8_t fAVX10_1;
uint8_t fAVX10_2;
} CPUFeatures;
Original file line number Diff line number Diff line change
Expand Up @@ -286,12 +286,33 @@ typedef union {
typedef union {
uint32_t value;
struct {
uint32_t : 21,
uint32_t : 19,
avx10 : 1,
: 1,
apx_f : 1,
: 10;
} bits;
} SefCpuid7SubLeaf1Edx;

typedef union {
uint32_t value;
struct {
uint32_t sub_leaves_cnt : 31;
} bits;
} StdCpuid24MainLeafEax;

typedef union StdCpuid24MainLeafEbx {
uint32_t value;
struct {
uint32_t avx10_converged_isa_version : 8,
: 8,
: 2,
avx10_vlen_512 : 1,
: 13;
} bits;
} StdCpuid24MainLeafEbx;


typedef union {
uint32_t value;
struct {
Expand Down Expand Up @@ -354,6 +375,11 @@ typedef struct {
SefCpuid7SubLeaf1Eax sefsl1_cpuid7_eax;
SefCpuid7SubLeaf1Edx sefsl1_cpuid7_edx;

// cpuid function 24 converged vector ISA main leaf
// eax = 24, ecx = 0
StdCpuid24MainLeafEax std_cpuid24_eax;
StdCpuid24MainLeafEbx std_cpuid24_ebx;

// cpuid function 0xB (processor topology)
// ecx = 0
uint32_t tpl_cpuidB0_eax;
Expand Down
36 changes: 36 additions & 0 deletions substratevm/src/com.oracle.svm.native.libchelper/src/cpuid.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,13 @@ static void initialize_cpuinfo(CpuidInfo *_cpuid_info)
_cpuid_info->sefsl1_cpuid7_edx.value = edx;
}

if (max_level >= 24)
{
get_cpuid(24, &eax, &ebx, &ecx, &edx);
_cpuid_info->std_cpuid24_eax.value = eax;
_cpuid_info->std_cpuid24_ebx.value = ebx;
}

// topology
if (max_level >= 0xB)
{
Expand Down Expand Up @@ -483,6 +490,35 @@ NO_INLINE static void set_cpufeatures(CPUFeatures *features, CpuidInfo *_cpuid_i
if (_cpuid_info->sef_cpuid7_ecx.bits.avx512_vbmi2 != 0)
features->fAVX512_VBMI2 = 1;
}
if (is_intel(_cpuid_info)) {
if (_cpuid_info->sefsl1_cpuid7_edx.bits.avx10 != 0 &&
_cpuid_info->std_cpuid24_ebx.bits.avx10_vlen_512 !=0 &&
_cpuid_info->std_cpuid24_ebx.bits.avx10_converged_isa_version >= 1 &&
_cpuid_info->xem_xcr0_eax.bits.opmask != 0 &&
_cpuid_info->xem_xcr0_eax.bits.zmm512 != 0 &&
_cpuid_info->xem_xcr0_eax.bits.zmm32 != 0) {
features->fAVX10_1 = 1;
features->fAVX_IFMA = 1;
features->fAVX512F = 1;
features->fAVX512CD = 1;
features->fAVX512DQ = 1;
features->fAVX512_IFMA = 1;
features->fAVX512PF = 1;
features->fAVX512ER = 1;
features->fAVX512BW = 1;
features->fAVX512VL = 1;
features->fAVX512_VPOPCNTDQ = 1;
features->fAVX512_VPCLMULQDQ = 1;
features->fAVX512_VAES = 1;
features->fAVX512_VNNI = 1;
features->fAVX512_BITALG = 1;
features->fAVX512_VBMI = 1;
features->fAVX512_VBMI2 = 1;
if (_cpuid_info->std_cpuid24_ebx.bits.avx10_converged_isa_version >= 2) {
features->fAVX10_2 = 1;
}
}
}
}
if (_cpuid_info->std_cpuid1_ecx.bits.hv != 0)
features->fHV = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static char *locale_aliases[] = {
"zh", "zh_CN",
#ifdef __linux__
"bokmal", "nb_NO",
"bokm\xE5l", "nb_NO",
"bokmål", "nb_NO",
"catalan", "ca_ES",
"croatian", "hr_HR",
"czech", "cs_CZ",
Expand All @@ -98,7 +98,7 @@ static char *locale_aliases[] = {
"eesti", "et_EE",
"estonian", "et_EE",
"finnish", "fi_FI",
"fran\xE7\x61is", "fr_FR",
"français", "fr_FR",
"french", "fr_FR",
"galego", "gl_ES",
"galician", "gl_ES",
Expand Down Expand Up @@ -162,7 +162,7 @@ static char *language_names[] = {
"deutsch", "de",
"dutch", "nl",
"finnish", "fi",
"fran\xE7\x61is", "fr",
"français", "fr",
"french", "fr",
"german", "de",
"greek", "el",
Expand Down
Loading