On 04/09/14 05:35, David Holmes wrote:
Hi Magnus,

On 1/09/2014 10:11 PM, Magnus Ihse Bursie wrote:
Even in the default log level ("warn"), hotspots builds are extremely
verbose. With the new jigsaw build system, hotspot is build in parallel
with the jdk, and the sheer amount of hotspot output makes the jdk
output practically disappear.

This fix will make the following changes:
* When hotspot is build from the top dir with the default log level, all
repetetive and purely informative output is hidden (e.g. names of files
compiled, and the "INFO:" blobs).

I think I probably want a default log level a little more informative than that - I like to see visible progress indicators. :)

* When hotspot is build from the top dir, with any other log level
(info, debug, trace), all output will be there, as before.

Would be nice to have fixed the excessive/repetitive INFO blocks re FDS :) but that requires more than just controlling an on/off switch.

* When hotspot is build from the hotspot repo, all output will be there,
as before.

Note! This is a preliminary review -- I have made the necessary changes
for Linux only. If this fix gets thumbs up, I'll continue and apply the
same pattern to the rest of the platforms. But I didn't want to do all
that duplication until I felt certain that I wouldn't have to change
something major. The changes themselves are mostly trivial, but they are
all over the place :-(.

Bug: https://bugs.openjdk.java.net/browse/JDK-8056999
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8056999-less-verbose-hotspot-builds/webrev.01

Seems to be some overlap with the $(QUIETLY) mechanism - but to be honest I always have trouble remembering how that works. In looking at it now it seems to me that "$(QUIETLY) echo" is incorrect as the text is always echoed, what gets suppressed is the echoing of the echo command itself - which seems pointless. So I think all "$(QUIETLY) echo" should just be @echo.

But then replacing @echo with a $(ECHO) that may be silent would seem a bit cleaner that "@echo $(LOG_INFO). (Not sure what you are doing in the rest of the build).

print_info is nice.

Cheers,
David


/Magnus

Personally speaking, my make(1) files always use constructs similar to the following...

Common-Defs.gmk:

DATE      = $(shell date +%d%b%Y-%T)
TGT_START = @/bin/echo -e "\n$(DATE): Target $@: Starting ..."
TGT_END   = @echo "$(DATE): Target $@: Done"

_VERBOSE  = $(if $(VERBOSE),,@)
_DEBUG    = $(if $(DEBUG),set -x; ,)
PREFIX    := $(_VERBOSE) set -e; $(_DEBUG)

.
.
.

Makefile:

tgt:
    $(TGT_START)
    $(PREFIX) cmd [cmd...]
    $(TGT_END)


which works for me :-)

HTH.

Rgds ,

--
​Dave Pointon FIAP MBCS - Contractor engaged by IBM

Now I saw, tho' too late, the folly of beginning a work before we count the 
cost and before we we judge rightly of our strength to go thro' with it - 
Robinson Crusoe

Reply via email to