RFR: JDK-8151300: Build shell trace functionality lost in JDK-8076060

Tim Bell tim.bell at oracle.com
Fri Mar 4 19:38:56 UTC 2016


Hi Erik:

> When running the build with LOG=trace, we (used to) have a neat 
> feature that would print which prerequisites triggered each rule to 
> run. This functionality was lost with JDK-8076060 where the SHELL 
> variable setting this up was changed to be assigned using ':=' instead 
> of ':'. I cannot see any reason this was done for this particular 
> variable so assuming it was a mistake while changing other variables 
> in the same file. Removing the ':' for SHELL fixes LOG=trace.
>
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8151300
> diff -r 83fe2455dcc1 make/common/MakeBase.gmk
> --- a/make/common/MakeBase.gmk
> +++ b/make/common/MakeBase.gmk
> @@ -282,7 +282,7 @@
>      # Default shell seems to always be /bin/sh. Must override with 
> bash to get this to work on Solaris.
>      # Only use time if it's GNU time which supports format and output 
> file.
>      WRAPPER_SHELL := $$(BASH) $$(SRC_ROOT)/common/bin/shell-tracer.sh 
> $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) 
> $$(OUTPUT_ROOT)/build-trace-time.log $$(SHELL)
> -    SHELL := $$(warning $$(if $$@,Building $$@,Running shell command) 
> $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if 
> $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) 
> newer)))$$(WRAPPER_SHELL)
> +    SHELL = $$(warning $$(if $$@,Building $$@,Running shell command) 
> $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if 
> $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) 
> newer)))$$(WRAPPER_SHELL)
>    endif
>    # The warn level can never be turned off
>    LogWarn = $$(info $$(strip $$1))

Looks good to me.

Tim




More information about the build-dev mailing list