From 682e836d60f79fda65a3de19fdee5c6177e2b338 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie <ihse@openjdk.org>
Date: Mon, 29 Jun 2020 18:39:40 +0200
Subject: [PATCH] 8248488: JDK-8246484 actually broke COMPARE_BUILD

Reviewed-by: erikj
---
 make/Init.gmk        |  2 +-
 make/InitSupport.gmk | 11 ++++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/make/Init.gmk b/make/Init.gmk
index 932286a58b1..1df133eeef0 100644
--- a/make/Init.gmk
+++ b/make/Init.gmk
@@ -197,7 +197,7 @@ ifeq ($(HAS_SPEC),)
 	            COMPARE_BUILD="$(COMPARE_BUILD)" pre-compare-build && \
 	        $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -j 1 -f $(topdir)/make/Init.gmk \
 	            SPEC=$(spec) HAS_SPEC=true $(MAKE_INIT_WITH_SPEC_ARGUMENTS) \
-	            COMPARE_BUILD="$(COMPARE_BUILD)" main && \
+	            COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" main && \
 	        $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -f $(topdir)/make/Init.gmk \
 	            SPEC=$(spec) HAS_SPEC=true ACTUAL_TOPDIR=$(topdir) \
 	            COMPARE_BUILD="$(COMPARE_BUILD)" post-compare-build && \
diff --git a/make/InitSupport.gmk b/make/InitSupport.gmk
index 6dbc963ba8c..8ee2e9098ba 100644
--- a/make/InitSupport.gmk
+++ b/make/InitSupport.gmk
@@ -350,6 +350,9 @@ else # $(HAS_SPEC)=true
           $$(if $$(filter FAIL=%, $$(part)), \
             $$(eval COMPARE_BUILD_FAIL=$$(strip $$(subst +, , $$(patsubst FAIL=%, %, $$(part))))) \
           ) \
+          $$(if $$(filter NODRYRUN=%, $$(part)), \
+            $$(eval COMPARE_BUILD_NODRYRUN=$$(strip $$(subst +, , $$(patsubst NODRYRUN=%, %, $$(part))))) \
+          ) \
         )
       else
         # Separate handling for single field case, to allow for spaces in values.
@@ -372,9 +375,11 @@ else # $(HAS_SPEC)=true
         else ifeq ($$(wildcard $$(COMPARE_BUILD_PATCH)), )
           $$(error Patch file $$(COMPARE_BUILD_PATCH) does not exist)
         endif
-        PATCH_DRY_RUN := $$(shell cd $$(topdir) && $$(PATCH) --dry-run -p1 < $$(COMPARE_BUILD_PATCH) > /dev/null 2>&1 || $$(ECHO) FAILED)
-        ifeq ($$(PATCH_DRY_RUN), FAILED)
-          $$(error Patch file $$(COMPARE_BUILD_PATCH) does not apply cleanly)
+        ifneq ($$(COMPARE_BUILD_NODRYRUN), true)
+          PATCH_DRY_RUN := $$(shell cd $$(topdir) && $$(PATCH) --dry-run -p1 < $$(COMPARE_BUILD_PATCH) > /dev/null 2>&1 || $$(ECHO) FAILED)
+          ifeq ($$(PATCH_DRY_RUN), FAILED)
+            $$(error Patch file $$(COMPARE_BUILD_PATCH) does not apply cleanly)
+          endif
         endif
       endif
       ifneq ($$(COMPARE_BUILD_FAIL), true)