+1

Mandy

> On Dec 22, 2016, at 8:53 AM, Erik Joelsson <erik.joels...@oracle.com> wrote:
> 
> 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
>>>> 
>> 
> 

Reply via email to