Request for guidance on using possible future sets of javac options

Erik Joelsson erik.joelsson at oracle.com
Mon Feb 9 09:17:58 UTC 2015


That looks like it will work and is good enough for me.

/Erik

On 2015-02-07 01:44, joe darcy wrote:
> Hi Magnus,
>
> On 2/6/2015 3:45 PM, Magnus Ihse Bursie wrote:
>> On 2015-02-06 23:43, joe darcy wrote:
>>> Hi Erik,
>>>
>>> On 2/6/2015 12:03 AM, Erik Joelsson wrote:
>>>> Hello Joe,
>>>>
>>>> The simplest way of accomplishing this currently would be to add 
>>>> lines like this to make/CompileJavaModules.gmk:
>>>>
>>>> java.base_ADD_JAVAC_FLAGS := -Xdoclint:all/protected 
>>>> "-XdoclintPackage:java.*;javax.*"
>>>> java.desktop_ADD_JAVAC_FLAGS := -Xdoclint:all,-missing/protected 
>>>> "-XdoclintPackage:java.*;javax.*"
>>>>
>>>> This assuming those modules are already setup to using -Xlint:all 
>>>> -Werror in make/common/SetupJavacompilers.gmk, which should be true 
>>>> for at least those two.
>>>>
>>>> Is the separator ';' actually a path separator or always semi 
>>>> colon? If so, please use $(PATH_SEP). Also, a line containing a 
>>>> potential semi colon must always be quoted before given to the shell.
>>>
>>> That particular idiom didn't seem to work. I also tried
>>
>> It seems the value was not propagated correctly. Try adding this patch:
>> diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk
>> --- a/make/CompileJavaModules.gmk
>> +++ b/make/CompileJavaModules.gmk
>> @@ -481,7 +481,7 @@
>>      $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix 
>> $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent)
>>    endif
>>    $1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH))
>> -  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
>> +  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" 
>> $$($1_ADD_JAVAC_FLAGS)
>>
>>    $$(eval $$(call SetupJavaCompilation,$1, \
>>        SETUP := $$(if $$($1_SETUP), $$($1_SETUP), 
>> GENERATE_JDKBYTECODE), \
>>
>>
>> Now Erik's suggestion should work.
>>
>> Also, if the syntax is still in flux, I'd like to recommend a 
>> solution without semicolon, since that is interpreted as a command 
>> line separator in the unix shell world, and it's always a lot of 
>> hassle if you need to propagate those. Commas are much simpler. :)
>>
>
> The following change to CompileJavaModules.gmk did the trick:
>
> diff -r d91ed1951b94 make/CompileJavaModules.gmk
> --- a/make/CompileJavaModules.gmk    Thu Jan 29 15:34:46 2015 -0800
> +++ b/make/CompileJavaModules.gmk    Fri Feb 06 16:41:41 2015 -0800
> @@ -42,6 +42,7 @@
>
>  ################################################################################ 
>
>
> +java.base_ADD_JAVAC_FLAGS := -Xdoclint:all/protected 
> '-Xdoclint/package:java.*,javax.*'
>  java.base_COPY := .icu .dat .spp content-types.properties 
> hijrah-config-islamic-umalqura.properties
>  java.base_CLEAN := intrinsic.properties
>
> @@ -481,7 +482,7 @@
>      $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix 
> $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent)
>    endif
>    $1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH))
> -  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
> +  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" 
> $$($1_ADD_JAVAC_FLAGS)
>
>    $$(eval $$(call SetupJavaCompilation,$1, \
>        SETUP := $$(if $$($1_SETUP), $$($1_SETUP), 
> GENERATE_JDKBYTECODE), \
>
> In particular, using single quotes (') instead of double quotes (") 
> seems to be necessary to get the wildcard syntax passed down to javac 
> correctly. (Layers of quoting and globbing, always a minefield!)
>
> With the above change, the field properly fields on doclint problems 
> in the base module.
>
> And the candidate syntax for the doclint option does use comma rather 
> than semicolon as a delimiter :-)
>
> Thanks,
>

> -Joe
>
>
>




More information about the build-dev mailing list