From 5a8280a7e90319e6ac0641d507158eb3c4628eba Mon Sep 17 00:00:00 2001 From: John Cater Date: Wed, 31 Jul 2024 07:33:03 -0700 Subject: [PATCH] Add check that NativeAndStarlarkFlags actually contains flags. Part of fixing #23147. Closes #23157. PiperOrigin-RevId: 658001205 Change-Id: Ibf85095d66f70ebcf078bd7f6da108bab37746f1 --- .../lib/analysis/producers/BuildConfigurationKeyProducer.java | 2 +- .../build/lib/skyframe/config/NativeAndStarlarkFlags.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/producers/BuildConfigurationKeyProducer.java b/src/main/java/com/google/devtools/build/lib/analysis/producers/BuildConfigurationKeyProducer.java index d1560741b1361f..dd043672944300 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/producers/BuildConfigurationKeyProducer.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/producers/BuildConfigurationKeyProducer.java @@ -201,7 +201,7 @@ private StateMachine finishConfigurationKeyProcessing(BuildConfigurationKey newC private BuildConfigurationKey applyFlagsForOptions(BuildOptions options) throws OptionsParsingException { // Does the target platform provide any flags? - if (this.platformFlags != null) { + if (this.platformFlags != null && !this.platformFlags.isEmpty()) { OptionsParsingResult parsingResult = platformFlags.parse(); BuildOptions updatedOptions = options.applyParsingResult(parsingResult); return BuildConfigurationKey.create(updatedOptions); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/config/NativeAndStarlarkFlags.java b/src/main/java/com/google/devtools/build/lib/skyframe/config/NativeAndStarlarkFlags.java index b605b83874df4c..97fbdb15444ede 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/config/NativeAndStarlarkFlags.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/config/NativeAndStarlarkFlags.java @@ -64,6 +64,10 @@ public static Builder builder() { @Nullable abstract RepositoryMapping repoMapping(); + public boolean isEmpty() { + return nativeFlags().isEmpty() && starlarkFlags().isEmpty(); + } + public OptionsParsingResult parse() throws OptionsParsingException { OptionsParser parser = OptionsParser.builder()