RFR: JDK-8175271: Race in GenerateLinkOptData.gmk
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Tue Feb 21 11:32:50 UTC 2017
On 2017-02-20 17:02, Erik Joelsson wrote:
> Hello,
>
> There is a missing dependency declaration in GenerateLinkOptData.gmk.
> A rule like the one that generates CLASSLIST_FILE and JLI_TRACE_FILE
> is problematic and needs extra care because make can only understand
> one target file per rule. In this case we have added a new rule which
> depends on JLI_TRACE_FILE, but make does not know this file is created
> by the rule for CLASSLIST_FILE so we have to explicitly add that
> dependency.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8175271
>
> Patch:
>
> diff -r a4087bc10a88 make/GenerateLinkOptData.gmk
> --- a/make/GenerateLinkOptData.gmk
> +++ b/make/GenerateLinkOptData.gmk
> @@ -69,7 +69,7 @@
>
> # The jli trace is created by the same recipe as classlist. By
> declaring these
> # dependencies, make will correctly rebuild both jli trace and classlist
> -# incrementally using the single recpie above.
> +# incrementally using the single recipe above.
> $(CLASSLIST_FILE): $(JLI_TRACE_FILE)
> $(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX)
> $(CLASSLIST_JAR)
>
> @@ -89,6 +89,11 @@
> DEST :=
> $(JDK_OUTPUTDIR)/modules/jdk.jlink/jdk/tools/jlink/internal/plugins, \
> ))
>
> +# Because of the single recipe for jli trace and classlist above, the
> +# COPY_JLI_TRACE rule needs to explicitly add the classlist file as a
> +# prerequisite.
> +$(COPY_JLI_TRACE): $(CLASSLIST_FILE)
> +
> TARGETS += $(COPY_JLI_TRACE)
>
> ################################################################################
>
>
Looks good to me.
/Magnus
>
> /Erik
>
More information about the build-dev
mailing list