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

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




More information about the build-dev mailing list