Revise DumpPlatformClassPath
see https://github.com/bazelbuild/bazel/issues/6179
PiperOrigin-RevId: 213946706
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index 41b21b5..585596c 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -7,6 +7,7 @@
"JDK8_JVM_OPTS",
"JDK9_JVM_OPTS",
"DEFAULT_JAVACOPTS",
+ "bootclasspath",
)
# Used to distinguish toolchains used for Java development, ie the JavaToolchainProvider.
@@ -199,28 +200,23 @@
# in RELEASES, using javac to read those APIs via the infrastructure added
# for the --release flag (see http://openjdk.java.net/jeps/247).
[
- genrule(
+ bootclasspath(
name = "platformclasspath%d" % release,
- srcs = ["DumpPlatformClassPath.java"],
- outs = ["platformclasspath%d.jar" % release],
- cmd = """
-set -eu
-TMPDIR=$$(mktemp -d -t tmp.XXXXXXXX)
-$(JAVABASE)/bin/javac -source 8 -target 8 \
- -Xlint:-options \
- -cp $(JAVABASE)/lib/tools.jar \
- -d $$TMPDIR $<
-$(JAVA) -XX:+IgnoreUnrecognizedVMOptions \
- --add-exports=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED \
- -cp $$TMPDIR DumpPlatformClassPath %d $@
-rm -rf $$TMPDIR
-""" % release,
- toolchains = ["@bazel_tools//tools/jdk:current_host_java_runtime"],
- tools = ["@bazel_tools//tools/jdk:current_host_java_runtime"],
+ src = "DumpPlatformClassPath.java",
+ host_javabase = "current_java_runtime",
+ release = "%s" % release,
)
for release in RELEASES
]
+bootclasspath(
+ name = "platformclasspath",
+ src = "DumpPlatformClassPath.java",
+ host_javabase = "current_java_runtime",
+ release = "8", # fall-back only
+ target_javabase = "current_java_runtime",
+)
+
default_java_toolchain(
name = "toolchain_hostjdk8",
bootclasspath = [":platformclasspath8"],
@@ -231,9 +227,12 @@
# Default to the Java 8 language level.
# TODO(cushon): consider if/when we should increment this?
-alias(
+default_java_toolchain(
name = "toolchain_hostjdk9",
- actual = "toolchain_java8",
+ bootclasspath = [":platformclasspath"],
+ jvm_opts = JDK9_JVM_OPTS,
+ source_version = "8",
+ target_version = "8",
)
# The 'vanilla' toolchain is an unsupported alternative to the default.