Here is a new patch, using --list-mods instead, seems cleaner to me.
diff -r 84c58139cbd3 common/autoconf/boot-jdk.m4
--- a/common/autoconf/boot-jdk.m4
+++ b/common/autoconf/boot-jdk.m4
@@ -305,9 +305,8 @@
BOOT_JDK_SOURCETARGET="-source 8 -target 8"
AC_SUBST(BOOT_JDK_SOURCETARGET)
- ADD_JVM_ARG_IF_OK([--patch-module foo=bar], dummy, [$JAVA])
AC_MSG_CHECKING([if Boot JDK supports modules])
- if test "x$JVM_ARG_OK" = "xtrue"; then
+ if "$JAVA" --list-modules > /dev/null 2>&1; then
AC_MSG_RESULT([yes])
BOOT_JDK_MODULAR="true"
else
/Erik
On 2016-12-22 17:48, Erik Joelsson wrote:
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