[windows/arm64] Add missing JDK toolchain for java build Extend configurations to add JDK 11 and 17 for windows/arm64 platforms. This should fix the Java builds on windows/arm64 Closes #14700. PiperOrigin-RevId: 427737536
diff --git a/WORKSPACE b/WORKSPACE index bc5acf4..3fca315 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -477,6 +477,14 @@ ) dist_http_archive( + name = "remotejdk11_win_arm64_for_testing", + build_file = "@local_jdk//:BUILD.bazel", + patch_cmds = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE, + patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE_WIN, + +) + +dist_http_archive( name = "remotejdk17_linux_for_testing", build_file = "@local_jdk//:BUILD.bazel", patch_cmds = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE, @@ -504,6 +512,14 @@ patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE_WIN, ) +dist_http_archive( + name = "remotejdk17_win_arm64_for_testing", + build_file = "@local_jdk//:BUILD.bazel", + patch_cmds = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE, + patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_BAZEL_FILE_WIN, + +) + # Used in src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE. dist_http_archive( name = "remote_java_tools_for_testing", @@ -597,6 +613,15 @@ # This must be kept in sync with src/test/shell/bazel/testdata/jdk_http_archives. dist_http_archive( + name = "openjdk11_windows_arm64_archive", + build_file_content = """ +java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public']) +exports_files(["WORKSPACE"], visibility = ["//visibility:public"]) +""", +) + +# This must be kept in sync with src/test/shell/bazel/testdata/jdk_http_archives. +dist_http_archive( name = "openjdk17_linux_archive", build_file_content = """ java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public']) @@ -631,6 +656,15 @@ """, ) +# This must be kept in sync with src/test/shell/bazel/testdata/jdk_http_archives. +dist_http_archive( + name = "openjdk17_windows_arm64_archive", + build_file_content = """ +java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public']) +exports_files(["WORKSPACE"], visibility = ["//visibility:public"]) +""", +) + load("@io_bazel_skydoc//:setup.bzl", "stardoc_repositories") stardoc_repositories()
diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 2ce1eb2..da8dab7 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl
@@ -449,6 +449,8 @@ }, "remotejdk17_win_arm64": { "aliases": [ + "remotejdk17_win_arm64_for_testing", + "openjdk17_windows_arm64_archive", "openjdk_win_arm64_vanilla", ], "archive": "zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", @@ -460,6 +462,19 @@ ], "used_in": ["test_WORKSPACE_files"], }, + "remotejdk11_win_arm64": { + "aliases": [ + "remotejdk11_win_arm64_for_testing", + "openjdk11_windows_arm64_archive", + ], + "archive": "microsoft-jdk-11.0.13.8.1-windows-aarch64.zip", + "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", + "strip_prefix": "jdk-11.0.13+8", + "urls": [ + "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip", + ], + "used_in": ["test_WORKSPACE_files"], + }, "remotejdk17_linux": { "aliases": [ "remotejdk17_linux_for_testing",
diff --git a/src/BUILD b/src/BUILD index 45419a6..1a007b8 100644 --- a/src/BUILD +++ b/src/BUILD
@@ -653,10 +653,12 @@ "@openjdk11_darwin_archive//:WORKSPACE", "@openjdk11_linux_archive//:WORKSPACE", "@openjdk11_windows_archive//:WORKSPACE", + "@openjdk11_windows_arm64_archive//:WORKSPACE", "@openjdk17_darwin_aarch64_archive//:WORKSPACE", "@openjdk17_darwin_archive//:WORKSPACE", "@openjdk17_linux_archive//:WORKSPACE", "@openjdk17_windows_archive//:WORKSPACE", + "@openjdk17_windows_arm64_archive//:WORKSPACE", "@openjdk_linux_aarch64_minimal//file", "@openjdk_linux_minimal//file", "@openjdk_macos_aarch64_minimal//file", @@ -677,10 +679,12 @@ "@remotejdk11_linux_s390x_for_testing//:WORKSPACE", "@remotejdk11_macos_aarch64_for_testing//:WORKSPACE", "@remotejdk11_macos_for_testing//:WORKSPACE", + "@remotejdk11_win_arm64_for_testing//:WORKSPACE", "@remotejdk11_win_for_testing//:WORKSPACE", "@remotejdk17_linux_for_testing//:WORKSPACE", "@remotejdk17_macos_aarch64_for_testing//:WORKSPACE", "@remotejdk17_macos_for_testing//:WORKSPACE", + "@remotejdk17_win_arm64_for_testing//:WORKSPACE", "@remotejdk17_win_for_testing//:WORKSPACE", "@rules_cc//:WORKSPACE", "@rules_java//:WORKSPACE",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index cee45d7..80401dd 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD
@@ -101,10 +101,12 @@ "remotejdk11_macos", "remotejdk11_macos_aarch64", "remotejdk11_win", + "remotejdk11_win_arm64", "remotejdk17_linux", "remotejdk17_macos", "remotejdk17_macos_aarch64", "remotejdk17_win", + "remotejdk17_win_arm64", ], template = "jdk.WORKSPACE.tmpl", visibility = ["//:__pkg__"],
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl index c7dc6c3..e84d87c 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl
@@ -97,6 +97,17 @@ # This must be kept in sync with the top-level WORKSPACE file. maybe( remote_java_repository, + {remotejdk11_win_arm64} + target_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:arm64", + ], + version = "11", +) + +# This must be kept in sync with the top-level WORKSPACE file. +maybe( + remote_java_repository, {remotejdk17_linux} target_compatible_with = [ "@platforms//os:linux", @@ -139,6 +150,16 @@ ) maybe( + remote_java_repository, + {remotejdk17_win_arm64} + target_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:arm64", + ], + version = "17", +) + +maybe( http_archive, {remote_java_tools} )
diff --git a/src/test/py/bazel/test_base.py b/src/test/py/bazel/test_base.py index 9c4cf3c..1df8a3a 100644 --- a/src/test/py/bazel/test_base.py +++ b/src/test/py/bazel/test_base.py
@@ -64,10 +64,12 @@ 'remotejdk11_macos_for_testing', 'remotejdk11_macos_aarch64_for_testing', 'remotejdk11_win_for_testing', + 'remotejdk11_win_arm64_for_testing', 'remotejdk17_linux_for_testing', 'remotejdk17_macos_for_testing', 'remotejdk17_macos_aarch64_for_testing', 'remotejdk17_win_for_testing', + 'remotejdk17_win_arm64_for_testing', 'remote_java_tools_for_testing', 'remote_java_tools_darwin_for_testing', 'remote_java_tools_linux_for_testing',
diff --git a/src/test/shell/bazel/testdata/BUILD b/src/test/shell/bazel/testdata/BUILD index 033f673..be725e3 100644 --- a/src/test/shell/bazel/testdata/BUILD +++ b/src/test/shell/bazel/testdata/BUILD
@@ -54,10 +54,12 @@ "openjdk11_darwin_archive", "openjdk11_darwin_aarch64_archive", "openjdk11_windows_archive", + "openjdk11_windows_arm64_archive", "openjdk17_linux_archive", "openjdk17_darwin_archive", "openjdk17_darwin_aarch64_archive", "openjdk17_windows_archive", + "openjdk17_windows_arm64_archive", ], template = "jdk_http_archives.tmpl", visibility = ["//:__pkg__"],
diff --git a/src/test/shell/bazel/testdata/jdk_http_archives.tmpl b/src/test/shell/bazel/testdata/jdk_http_archives.tmpl index eb3bca6..ff5e713 100644 --- a/src/test/shell/bazel/testdata/jdk_http_archives.tmpl +++ b/src/test/shell/bazel/testdata/jdk_http_archives.tmpl
@@ -40,6 +40,12 @@ build_file_content = "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])", ) +# This must be kept in sync with the top-level WORKSPACE file. +http_archive( + {openjdk11_windows_arm64_archive} + build_file_content = "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])", +) + #################################### JDK 17 #################################### # This must be kept in sync with the top-level WORKSPACE file. http_archive( @@ -76,3 +82,12 @@ exports_files(["WORKSPACE"], visibility = ["//visibility:public"]) """, ) + +# This must be kept in sync with src/test/shell/bazel/testdata/jdk_http_archives. +http_archive( + {openjdk17_windows_arm64_archive} + build_file_content = """ +java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public']) +exports_files(["WORKSPACE"], visibility = ["//visibility:public"]) +""", +)
diff --git a/src/test/shell/testenv.sh.tmpl b/src/test/shell/testenv.sh.tmpl index c0216a7..9c665c0 100755 --- a/src/test/shell/testenv.sh.tmpl +++ b/src/test/shell/testenv.sh.tmpl
@@ -289,10 +289,12 @@ "openjdk11_darwin_aarch64_archive" "openjdk11_linux_archive" "openjdk11_windows_archive" + "openjdk11_windows_arm64_archive" "openjdk17_darwin_archive" "openjdk17_darwin_aarch64_archive" "openjdk17_linux_archive" "openjdk17_windows_archive" + "openjdk17_windows_arm64_archive" "openjdk_linux_aarch64_minimal" "openjdk_linux_minimal" "openjdk_macos_x86_64_minimal" @@ -314,10 +316,12 @@ "remotejdk11_macos_for_testing" "remotejdk11_macos_aarch64_for_testing" "remotejdk11_win_for_testing" + "remotejdk11_win_arm64_for_testing" "remotejdk17_linux_for_testing" "remotejdk17_macos_for_testing" "remotejdk17_macos_aarch64_for_testing" "remotejdk17_win_for_testing" + "remotejdk17_win_arm64_for_testing" "rules_cc" "rules_java" "rules_proto"
diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools index 600b0b2..d102ef0 100644 --- a/tools/jdk/BUILD.tools +++ b/tools/jdk/BUILD.tools
@@ -443,6 +443,7 @@ "remotejdk11_macos", "remotejdk11_macos_aarch64", "remotejdk11_win", + "remotejdk11_win_arm64", "remotejdk11_linux_aarch64", "remotejdk11_linux", "remotejdk11_linux_ppc64le", @@ -450,6 +451,7 @@ "remotejdk17_macos", "remotejdk17_macos_aarch64", "remotejdk17_win", + "remotejdk17_win_arm64", "remotejdk17_linux", ]
diff --git a/tools/jdk/jdk.BUILD b/tools/jdk/jdk.BUILD index 057bfbf..6a95e85 100644 --- a/tools/jdk/jdk.BUILD +++ b/tools/jdk/jdk.BUILD
@@ -210,6 +210,6 @@ config_setting( name = "windows", - values = {"cpu": "x64_windows"}, + constraint_values = ["@platforms//os:windows"], visibility = ["//visibility:private"], )