Don't use @local_jdk for jni headers
instead, read the heads from the configured java runtime, so the values
track with changes to --javabase.
See #5594
PiperOrigin-RevId: 207894086
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index b364df6..71ea2da 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -8,6 +8,7 @@
"default_java_toolchain",
"JDK8_JVM_OPTS",
"JDK9_JVM_OPTS",
+ "java_runtime_files",
"DEFAULT_JAVACOPTS",
)
@@ -52,29 +53,29 @@
actual = "@bazel_tools//tools/jdk:current_java_runtime",
)
-alias(
+java_runtime_files(
name = "jni_header",
- actual = "@local_jdk//:jni_header",
+ srcs = ["include/jni.h"],
)
-alias(
+java_runtime_files(
name = "jni_md_header-darwin",
- actual = "@local_jdk//:jni_md_header-darwin",
+ srcs = ["include/darwin/jni_md.h"],
)
-alias(
+java_runtime_files(
name = "jni_md_header-linux",
- actual = "@local_jdk//:jni_md_header-linux",
+ srcs = ["include/linux/jni_md.h"],
)
-alias(
+java_runtime_files(
name = "jni_md_header-windows",
- actual = "@local_jdk//:jni_md_header-windows",
+ srcs = ["include/win32/jni_md.h"],
)
-alias(
+java_runtime_files(
name = "jni_md_header-freebsd",
- actual = "@local_jdk//:jni_md_header-freebsd",
+ srcs = ["include/freebsd/jni_md.h"],
)
alias(
diff --git a/tools/jdk/default_java_toolchain.bzl b/tools/jdk/default_java_toolchain.bzl
index c518d026..a3c659a 100644
--- a/tools/jdk/default_java_toolchain.bzl
+++ b/tools/jdk/default_java_toolchain.bzl
@@ -89,3 +89,19 @@
name = name,
**toolchain_args
)
+
+def java_runtime_files(name, srcs):
+ """Copies the given sources out of the current Java runtime."""
+
+ native.filegroup(
+ name = name,
+ srcs = srcs,
+ )
+ for src in srcs:
+ native.genrule(
+ name = "gen_%s" % src,
+ srcs = ["//tools/jdk:current_java_runtime"],
+ toolchains = ["//tools/jdk:current_java_runtime"],
+ cmd = "cp $(JAVABASE)/%s $@" % src,
+ outs = [src],
+ )