RFR (preliminary): JDK-8056999 Make hotspot builds less verbose on default log level

pointo1d pointo1d at gmail.com
Thu Sep 4 10:07:50 UTC 2014

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...


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)



     $(PREFIX) cmd [cmd...]

which works for me :-)


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

More information about the build-dev mailing list