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