RFR: JDK-8148655 LOG=cmdlines and other build-infra fixes

Erik Joelsson erik.joelsson at oracle.com
Tue Feb 2 11:14:36 UTC 2016


Looks good!

/Erik

On 2016-02-02 12:03, Magnus Ihse Bursie wrote:
> On 2016-02-02 09:49, Erik Joelsson wrote:
>>
>>
>> On 2016-02-01 22:36, Magnus Ihse Bursie wrote:
>>> On 2016-02-01 16:01, Erik Joelsson wrote:
>>>> Hello,
>>>>
>>>> InitSupport.gmk:
>>>> The comment still refers to ",nofile".
>>>
>>> I'll fix.
>>>
>>>>
>>>> I would probably have made an effort to replace "$(ECHO) $(call 
>>>> ShellQuote, $2) > $(strip $1).cmdline &&" with a call to WriteFile.
>>>
>>> I did think about that, yes. However, I didn't figure out a 
>>> satisfactory way to solve it. The problem is that WriteFile, on GNU 
>>> Make < 4, results in a $(shell) call, which seemed worse than a 
>>> chained call to echo, when we already is in a shell command line in 
>>> a recipe. I wasn't too keen on creating a WriteFileInRecipe version 
>>> either. So I couldn't figure out a way to do that that I was happy 
>>> with. But I'm open to suggestions (or even better, working code :-)).
>>>
>> I realize a $(shell) call isn't ideal, but the performance difference 
>> will most likely only be noticeable on Windows, where we know we have 
>> $(file) anyway.
>
> Ok.
>
> Here's a version where ExecuteWithLog has gotten even more TLC:
> http://cr.openjdk.java.net/~ihse/JDK-8148655-LOG-cmdlines-and-misc-fixes/webrev.02 
>
>
> Changes, compared to the previous webrev, are in the files 
> JavaCompilation.gmk, MakeBase.gmk and InitSupport.gmk.
>
> The following changes has been made since the last webrev:
> * Use WriteFile in ExecuteWithLog
> * Introduce and use LogCmdlines in ExecuteWithLog, to use $(info) 
> instead of echo.
>  (Together, these two also has the benefit och making LOG=debug more 
> readable)
> * Introduce and use LogWarn to get correct order of logging (due to 
> LogCmdlines)
> * Remove one layer of subshells ( ... ) which improves performance 
> slightly
> * Call MakeDir instead of MKDIR.
> * Fix MakeDir to properly support a list of directories
>
> /Magnus
>
>
>>
>> /Erik
>>
>>> /Magnus
>>>
>>>>
>>>> /Erik
>>>>
>>>> On 2016-01-30 11:27, Magnus Ihse Bursie wrote:
>>>>> This is yet another collection of fixes from the build-infra 
>>>>> hotspot project forest that has a stand-alone value.
>>>>>
>>>>> The most important change is the support of a new log option, 
>>>>> cmdlines. This is, like the old "nofile", an option that can be 
>>>>> added to a log level, e.g. "LOG=info,cmdlines" or used standalone 
>>>>> "LOG=cmdlines" (in which case the log level stays at default). 
>>>>> With this in place, the command line of "important" commands are 
>>>>> printed. Examples of "important" commands are compiler and linker 
>>>>> calls. Examples of "non-important" commands are "mkdir" or "cat". 
>>>>> Note that at this point, not all "important" calls are identified, 
>>>>> typically in esoteric stuff like gensrc.
>>>>>
>>>>> Apart from this, a few other changes are also included:
>>>>> * Allow DEBUG_SYMBOLS to be individually turned off (follow up to 
>>>>> JDK-8145596)
>>>>> * Support .S assembly files
>>>>> * Expose USERNAME outside configure
>>>>> * Fix broken indentation
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8148655
>>>>> WebRev: 
>>>>> http://cr.openjdk.java.net/~ihse/JDK-8148655-LOG-cmdlines-and-misc-fixes/webrev.01
>>>>>
>>>>> /Magnus
>>>>
>>>
>>
>




More information about the build-dev mailing list