Hello,
Thanks for the suggestions. The way the test is currently implemented is
using a framework for finding valid JVM parameters. It basically runs:
java $ArgToTest -version
and parses the output for warnings and verifies that the version was
printed. After looking at this more closely, I realize the
--patch-module option was chosen to fit this kind of test. On the other
hand, we could easily change the implementation here to just run "java
--list-modules > /devnull" and check the return code. That's probably
cleaner anyway.
/Erik
On 2016-12-22 17:33, Mandy Chung wrote:
Using —-patch-module is one option.
Alternatively, you can use other new options such as:
$ java --dry-run -m jdk.compiler/com.sun.tools.javac.Main
This stops before invoking the main method.
or
$ java —-list-modules
This lists the observable modules in the image.
Mandy
On Dec 22, 2016, at 1:39 AM, Erik Joelsson <erik.joels...@oracle.com> wrote:
Hello,
Configure has a check to see if the boot jdk is module aware/enabled. Like many
others, the build needs to adapt its behavior when using such a boot jdk. The
current check is no longer compatible with the latest JDK 9 builds:
java -version --patch-module foo=bar
WARNING: Unknown module: foo specified in --patch-module
I propose a simple adjustment, to instead specify java.base as the module to
patch. I also made it explicit that the directory to patch from does not exist.
I'm open to suggestions on better tests though, but would prefer if they can be
as simple as checking for a command line argument.
Bug: https://bugs.openjdk.java.net/browse/JDK-8171859
Patch:
diff -r 84c58139cbd3 common/autoconf/boot-jdk.m4
--- a/common/autoconf/boot-jdk.m4
+++ b/common/autoconf/boot-jdk.m4
@@ -305,7 +305,9 @@
BOOT_JDK_SOURCETARGET="-source 8 -target 8"
AC_SUBST(BOOT_JDK_SOURCETARGET)
- ADD_JVM_ARG_IF_OK([--patch-module foo=bar], dummy, [$JAVA])
+ # Use a non existing directory as the directory will be scanned otherwise
+ # and can potentially take a lot of time.
+ ADD_JVM_ARG_IF_OK([--patch-module java.base=SOME_DIR_THAT_DOES_NOT_EXIST],
dummy, [$JAVA])
AC_MSG_CHECKING([if Boot JDK supports modules])
if test "x$JVM_ARG_OK" = "xtrue"; then
AC_MSG_RESULT([yes])
/Erik