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




Reply via email to