Skip to content

[GR-64700] Update labsjdk to 25+21-jvmci-b01 #11129

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

Merged
merged 47 commits into from
May 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
49f2593
Automatic merge of master into galahad
OracleLabsAutomation Apr 24, 2025
dda12c2
Automatic merge of master into galahad
OracleLabsAutomation Apr 24, 2025
62a72cc
Automatic merge of master into galahad
OracleLabsAutomation Apr 24, 2025
aed533b
Automatic merge of master into galahad
OracleLabsAutomation Apr 24, 2025
5b4d19e
Automatic merge of master into galahad
OracleLabsAutomation Apr 24, 2025
409d582
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
4787db0
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
8e6a473
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
ffc5ade
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
0b492e7
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
bdee75e
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
c66a36d
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
0f1487d
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
e5ae2ce
Automatic merge of master into galahad
OracleLabsAutomation Apr 25, 2025
ef2b239
Automatic merge of master into galahad
OracleLabsAutomation Apr 26, 2025
ba843ea
Automatic merge of master into galahad
OracleLabsAutomation Apr 26, 2025
fa305f2
Automatic merge of master into galahad
OracleLabsAutomation Apr 28, 2025
45c4538
Update galahad jdk.
mur47x111 Apr 28, 2025
cd1181b
[JDK-8355700] Adapt JDK-8353786: Migrate Vector API math library supp…
mur47x111 Apr 28, 2025
13f510e
Adapt JDK-8345125: Aarch64: Add aarch64 backend for Float16 scalar op…
mur47x111 Feb 25, 2025
9a4804f
Update galahad JDK
mur47x111 Feb 25, 2025
834a18e
[JDK-8350672] Adapt JDK-8345125: Aarch64: Add aarch64 backend for Flo…
mur47x111 Apr 28, 2025
c406c4c
Automatic merge of master into galahad
OracleLabsAutomation Apr 28, 2025
04ff4c7
Automatic merge of master into galahad
OracleLabsAutomation Apr 28, 2025
15ca113
Automatic merge of master into galahad
OracleLabsAutomation Apr 29, 2025
a85eaf7
Automatic merge of master into galahad
OracleLabsAutomation Apr 29, 2025
4a97ac1
Automatic merge of master into galahad
OracleLabsAutomation Apr 30, 2025
9d8fc19
Automatic merge of master into galahad
OracleLabsAutomation Apr 30, 2025
9b6a69c
Automatic merge of master into galahad
OracleLabsAutomation Apr 30, 2025
cf05ac3
Automatic merge of master into galahad
OracleLabsAutomation Apr 30, 2025
d2ef06b
Adapt JDK-8354897: Support Soft/Weak Reference in AOT cache
mur47x111 Apr 25, 2025
7b59305
Update galahad JDK
mur47x111 Apr 25, 2025
9fad77b
rename ReferenceQueue.NULL to NULL_QUEUE
mur47x111 Apr 30, 2025
b100371
[JDK-8355586] Adapt JDK-8354897: Support Soft/Weak Reference in AOT c…
mur47x111 May 1, 2025
e958565
update JVMCI to 25+21-jvmci-b01
OracleLabsAutomation May 1, 2025
22c1a8d
compiler: update JVMCIVersionCheck
zapster May 2, 2025
579676e
Merge tag 'jdk-25+21'
zapster May 2, 2025
bc54fc5
svm: review @BasedOnJDKFile changes from JDK 25+21
zapster May 2, 2025
228c925
update visual studio version
marwan-hallaoui May 2, 2025
a07a658
deploy labsjdk snapshots
marwan-hallaoui May 2, 2025
6252112
svm: make "JDK-8354897: Support Soft/Weak Reference in AOT cache" wor…
zapster May 2, 2025
0ed087d
Add missing intrinsics for Vector API
mur47x111 May 2, 2025
211885d
svm: further adopt "JDK-8353786: Migrate Vector API math library supp…
zapster May 5, 2025
5917e19
svm: update @BasedOnJDKFile annotation in ForeignFunctionsConfigurati…
zapster May 5, 2025
1eae6b8
svm: adopt "JDK-8355442: Reference field lambda forms with type casts…
zapster May 5, 2025
3af6fd5
Ignore Sulong c11threads tests on Windows.
rschatz May 6, 2025
304a9af
svm: improve testhello.py pattern
zapster May 6, 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
2 changes: 1 addition & 1 deletion ci/common.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ local common_json = import "../common.json";
"windows-jdk19": { packages+: { "devkit:VS2022-17.1.0+1": "==0" }},
"windows-jdk20": { packages+: { "devkit:VS2022-17.1.0+1": "==0" }},
"windows-jdk21": { packages+: { "devkit:VS2022-17.1.0+1": "==1" }},
"windows-jdk-latest": { packages+: { "devkit:VS2022-17.6.5+1": "==0" }},
"windows-jdk-latest": { packages+: { "devkit:VS2022-17.13.2+1": "==0" }},
"windows-jdkLatest": self["windows-jdk-latest"],
"linux-jdk17": { packages+: { "devkit:gcc11.2.0-OL6.4+1": "==0" }},
"linux-jdk19": { packages+: { "devkit:gcc11.2.0-OL6.4+1": "==0" }},
Expand Down
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+19-2256", "platformspecific": true, "extrabundles": ["static-libs"]},
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+21-2525", "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+20", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+20-jvmci-b01", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+20-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+20-jvmci-b01-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+20-jvmci-b01", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+20-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+20-jvmci-b01-sulong", "platformspecific": true }
"oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+21", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+21-jvmci-b01", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+21-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+21-jvmci-b01-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+21-jvmci-b01", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+21-jvmci-b01-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+21-jvmci-b01-sulong", "platformspecific": true }
},

"eclipse": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ public final class JVMCIVersionCheck {
private static final Map<String, Map<String, Version>> JVMCI_MIN_VERSIONS = Map.of(
"21", Map.of(DEFAULT_VENDOR_ENTRY, createLegacyVersion(23, 1, 33)),
"25", Map.of(
"Oracle Corporation", createLabsJDKVersion("25+20", 1),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+20", 1)));
"Oracle Corporation", createLabsJDKVersion("25+21", 1),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+21", 1)));
private static final int NA = 0;
/**
* Minimum Java release supported by Graal.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,13 @@ public UnimplementedGraalIntrinsics(Architecture arch) {
"com/sun/crypto/provider/ML_KEM.implKyberInverseNtt([S[S)I",
"com/sun/crypto/provider/ML_KEM.implKyberNtt([S[S)I",
"com/sun/crypto/provider/ML_KEM.implKyberNttMult([S[S[S[S)I");

add(toBeInvestigated, // @formatter:off
// JDK-8353786: Migrate Vector API math library support to FFM API
"jdk/internal/vm/vector/VectorSupport.libraryBinaryOp(JLjava/lang/Class;Ljava/lang/Class;ILjava/lang/String;Ljdk/internal/vm/vector/VectorSupport$VectorPayload;Ljdk/internal/vm/vector/VectorSupport$VectorPayload;Ljdk/internal/vm/vector/VectorSupport$BinaryOperation;)Ljdk/internal/vm/vector/VectorSupport$VectorPayload;",
"jdk/internal/vm/vector/VectorSupport.libraryUnaryOp(JLjava/lang/Class;Ljava/lang/Class;ILjava/lang/String;Ljdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$UnaryOperation;)Ljdk/internal/vm/vector/VectorSupport$Vector;"
// @formatter:on
);
}

add(ignore,
Expand Down
4 changes: 2 additions & 2 deletions substratevm/mx.substratevm/testhello.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ def test():
exec_string = execute("backtrace")
stacktrace_regex = [
fr"#0{spaces_pattern}hello\.Hello::main{param_types_pattern} {arg_values_pattern} at hello/Hello\.java:{main_start:d}",
fr"#1{spaces_pattern}({address_pattern} in )?java\.lang\.invoke\.LambdaForm\$DMH/s{hex_digits_pattern}::invokeStatic(Init)?{param_types_pattern} {arg_values_pattern}( at java/lang/invoke/{package_file_pattern}:[0-9]+)?",
fr"#1{spaces_pattern}({address_pattern} in )?java\.lang\.invoke\.DirectMethodHandle\$Holder::invokeStatic(Init)?{param_types_pattern} {arg_values_pattern}( at java/lang/invoke/{package_file_pattern}:[0-9]+)?",
fr"#2{spaces_pattern}({address_pattern} in )?com\.oracle\.svm\.core\.JavaMainWrapper::invokeMain{param_types_pattern} {arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
fr"#3{spaces_pattern}({address_pattern} in )?com\.oracle\.svm\.core\.JavaMainWrapper::runCore0{no_param_types_pattern} {no_arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
fr"#4{spaces_pattern}{address_pattern} in com\.oracle\.svm\.core\.JavaMainWrapper::runCore{no_param_types_pattern} {no_arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
Expand Down Expand Up @@ -402,7 +402,7 @@ def test():
stacktrace_regex = [
fr"#0{spaces_pattern}hello\.Hello\$Greeter::greeter{param_types_pattern} {arg_values_pattern} at hello/Hello\.java:38",
fr"#1{spaces_pattern}{address_pattern} in hello\.Hello::main{param_types_pattern} {arg_values_pattern} at hello/Hello\.java:{main_start:d}",
fr"#2{spaces_pattern}({address_pattern} in )?java\.lang\.invoke\.LambdaForm\$DMH/s{hex_digits_pattern}::invokeStatic(Init)?{param_types_pattern} {arg_values_pattern}( at java/lang/invoke/{package_file_pattern}:[0-9]+)?",
fr"#2{spaces_pattern}({address_pattern} in )?java\.lang\.invoke\.DirectMethodHandle\$Holder::invokeStatic(Init)?{param_types_pattern} {arg_values_pattern}( at java/lang/invoke/DirectMethodHandle.java:[0-9]+)?",
fr"#3{spaces_pattern}({address_pattern} in )?com\.oracle\.svm\.core\.JavaMainWrapper::invokeMain{param_types_pattern} {arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
fr"#4{spaces_pattern}({address_pattern} in )?com\.oracle\.svm\.core\.JavaMainWrapper::runCore0{no_param_types_pattern} {no_arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
fr"#5{spaces_pattern}{address_pattern} in com\.oracle\.svm\.core\.JavaMainWrapper::runCore{no_param_types_pattern} {no_arg_values_pattern} at {package_pattern}JavaMainWrapper\.java:[0-9]+",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, 2020, Arm Limited. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -131,6 +131,14 @@ public interface CPUFeatures extends PointerBase {
@AllowNarrowingCast
@CField
boolean fSVEBITPERM();

@AllowNarrowingCast
@CField
boolean fFPHP();

@AllowNarrowingCast
@CField
boolean fASIMDHP();
}
// Checkstyle: resume
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class LocaleCHelper {
@CFunction(value = "svm_initialize_locale", transition = NO_TRANSITION)
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+17/src/java.base/unix/native/libjava/java_props_md.c#L71-L357")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+17/src/java.base/unix/native/libjava/java_props_md.c#L436-L460")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+20/src/java.base/windows/native/libjava/java_props_md.c#L263-L716")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/java.base/windows/native/libjava/java_props_md.c#L263-L721")
static native int initializeLocale();

@CFunction(value = "svm_get_locale", transition = NO_TRANSITION)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,33 +60,33 @@
@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+20/src/hotspot/os/linux/os_linux.cpp")
@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+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")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/posix/os_posix.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/posix/os_posix.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/os/posix/os_posix.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/os/posix/os_posix.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/os/posix/os_posix.inline.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/memory/allocation.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/memory/allocation.inline.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/memory/allocation.inline.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/memory/allStatic.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/nmt/memTag.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+20/src/hotspot/share/runtime/os.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+19/src/hotspot/share/runtime/os.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/runtime/os.cpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/runtime/os.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/runtime/os.inline.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/checkedCast.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/compilerWarnings_gcc.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/compilerWarnings.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/utilities/compilerWarnings_gcc.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/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+20/src/hotspot/share/utilities/globalDefinitions.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/macros.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+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+18/src/hotspot/share/utilities/ostream.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/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+19/src/hotspot/share/runtime/globals.hpp")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+18/src/hotspot/share/utilities/debug.cpp")
@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")
public class ContainerLibrary {
static final int VERSION = 240100;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import java.lang.ref.Reference;
import java.lang.ref.SoftReference;

import jdk.graal.compiler.serviceprovider.JavaVersionUtil;
import org.graalvm.word.Pointer;

import com.oracle.svm.core.NeverInline;
Expand Down Expand Up @@ -161,7 +162,8 @@ public static <T> void setNextDiscovered(Reference<T> instance, Reference<?> new
}

public static boolean hasQueue(Reference<?> instance) {
return cast(instance).queue != Target_java_lang_ref_ReferenceQueue.NULL;
return cast(instance).queue != (JavaVersionUtil.JAVA_SPEC > 21 ? Target_java_lang_ref_ReferenceQueue.NULL_QUEUE
: Target_java_lang_ref_ReferenceQueue.NULL);
}

/*
Expand Down Expand Up @@ -229,7 +231,8 @@ public static void processPendingReferences() {
} else {
@SuppressWarnings("unchecked")
Target_java_lang_ref_ReferenceQueue<? super Object> queue = SubstrateUtil.cast(ref.queue, Target_java_lang_ref_ReferenceQueue.class);
if (queue != Target_java_lang_ref_ReferenceQueue.NULL) {
if (queue != (JavaVersionUtil.JAVA_SPEC > 21 ? Target_java_lang_ref_ReferenceQueue.NULL_QUEUE
: Target_java_lang_ref_ReferenceQueue.NULL)) {
// Enqueues, avoiding the potentially overridden Reference.enqueue().
queue.enqueue(ref);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import java.lang.reflect.Field;
import java.util.function.BooleanSupplier;

import jdk.graal.compiler.serviceprovider.JavaVersionUtil;
import org.graalvm.nativeimage.Platform;
import org.graalvm.nativeimage.Platforms;
import org.graalvm.nativeimage.hosted.FieldValueTransformer;
Expand Down Expand Up @@ -119,7 +120,8 @@ public final class Target_java_lang_ref_Reference<T> {
@Uninterruptible(reason = "The initialization of the fields must be atomic with respect to collection.")
Target_java_lang_ref_Reference(T referent, Target_java_lang_ref_ReferenceQueue<? super T> queue) {
this.referent = referent;
this.queue = (queue == null) ? Target_java_lang_ref_ReferenceQueue.NULL : queue;
this.queue = (queue == null) ? (JavaVersionUtil.JAVA_SPEC > 21 ? Target_java_lang_ref_ReferenceQueue.NULL_QUEUE
: Target_java_lang_ref_ReferenceQueue.NULL) : queue;
}

@KeepOriginal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,21 @@
import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import com.oracle.svm.core.annotate.TargetElement;
import com.oracle.svm.core.jdk.JDK21OrEarlier;
import com.oracle.svm.core.jdk.JDKLatest;

@TargetClass(ReferenceQueue.class)
final class Target_java_lang_ref_ReferenceQueue<T> {
@Alias static Target_java_lang_ref_ReferenceQueue<Object> NULL;
// Checkstyle: stop
@Alias //
@TargetElement(onlyWith = JDKLatest.class) //
static Target_java_lang_ref_ReferenceQueue<Object> NULL_QUEUE;
// CheckStyle: resume

@Alias //
@TargetElement(onlyWith = JDK21OrEarlier.class) //
static Target_java_lang_ref_ReferenceQueue<Object> NULL;

@Alias @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset) //
volatile Reference<? extends T> head;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public boolean isNativeAccessEnabled() {
public native void ensureNativeAccess(Class<?> owner, String methodName, Class<?> currentClass, boolean jni);

@Substitute
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+22/src/hotspot/share/classfile/modules.cpp#L279-L478")
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/hotspot/share/classfile/modules.cpp#L279-L474")
private static void defineModule0(Module module, boolean isOpen, String version, String location, Object[] pns) {
ModuleNative.defineModule(module, isOpen, pns);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@
*/
package com.oracle.svm.core.jdk;

import java.util.stream.Collectors;

import org.graalvm.nativeimage.ImageSingletons;

import com.oracle.svm.core.AlwaysInline;
import com.oracle.svm.core.SubstrateTargetDescription;
import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.AnnotateOriginal;
import com.oracle.svm.core.annotate.Delete;
Expand All @@ -33,6 +38,9 @@
import com.oracle.svm.core.annotate.TargetClass;
import com.oracle.svm.core.annotate.TargetElement;

import jdk.graal.compiler.api.replacements.Fold;
import jdk.vm.ci.code.CPUFeatureName;

@TargetClass(className = "jdk.internal.vm.vector.VectorSupport")
final class Target_jdk_internal_vm_vector_VectorSupport {
@Delete
Expand All @@ -43,6 +51,24 @@ final class Target_jdk_internal_vm_vector_VectorSupport {
private static int getMaxLaneCount(Class<?> etype) {
return VectorAPISupport.singleton().getMaxLaneCount(etype);
}

/**
* Substitutes the native method with a constant string defined at build time.
*/
@Substitute
@TargetElement(onlyWith = JDKLatest.class)
public static String getCPUFeatures() {
return Helper_jdk_internal_vm_vector_VectorSupport.getCPUFeatures();
}
}

final class Helper_jdk_internal_vm_vector_VectorSupport {
@Fold
public static String getCPUFeatures() {
return ImageSingletons.lookup(SubstrateTargetDescription.class).arch.getFeatures().stream()
.map(CPUFeatureName::name)
.collect(Collectors.joining(","));
}
}

@TargetClass(className = "jdk.incubator.vector.LaneType", onlyWith = VectorAPIEnabled.class)
Expand Down
Loading