Make host_system_name optional in cc_common.create_cc_toolchain_config_info.
This string is entirely unused in Bazel. This CL removes some plumbing that passes it through to the CppLinkAction where it is then ignored, but does retain the code that places it into the toolchain proto since this is tested.
PiperOrigin-RevId: 396943756
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
index 21e3f41..be47ae9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
@@ -1043,7 +1043,7 @@
Sequence<?> artifactNamePatterns, // <StarlarkInfo> expected
Sequence<?> cxxBuiltInIncludeDirectoriesUnchecked, // <String> expected
String toolchainIdentifier,
- String hostSystemName,
+ Object hostSystemName,
String targetSystemName,
String targetCpu,
String targetLibc,
@@ -1208,7 +1208,7 @@
artifactNamePatternBuilder.build(),
ImmutableList.copyOf(cxxBuiltInIncludeDirectories),
toolchainIdentifier,
- hostSystemName,
+ convertFromNoneable(hostSystemName, /* defaultValue= */ ""),
targetSystemName,
targetCpu,
targetLibc,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java
index 6f52f39..9db9dd0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java
@@ -166,10 +166,6 @@
return toolchainIdentifier;
}
- public String getHostSystemName() {
- return hostSystemName;
- }
-
public String getTargetSystemName() {
return targetSystemName;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 0964818..a563651 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -97,7 +97,6 @@
private final String abiGlibcVersion;
private final String abi;
private final String targetLibc;
- private final String hostSystemName;
private final String targetSystemName;
private final Label ccToolchainLabel;
private final String solibDirectory;
@@ -170,7 +169,6 @@
PathFragment defaultSysroot,
PathFragment runtimeSysroot,
String targetLibc,
- String hostSystemName,
Label ccToolchainLabel,
String solibDirectory,
String abi,
@@ -235,7 +233,6 @@
this.targetCpu = targetCpu;
this.targetOS = targetOS;
this.targetLibc = targetLibc;
- this.hostSystemName = hostSystemName;
this.ccToolchainLabel = ccToolchainLabel;
this.solibDirectory = solibDirectory;
this.abi = abi;
@@ -886,11 +883,6 @@
return targetOS;
}
- /** Returns the system name which is required by the toolchain to run. */
- public String getHostSystemName() {
- return hostSystemName;
- }
-
/** Returns the GNU System Name */
@Override
public String getTargetGnuSystemName() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
index 1fdacee..bc5e444 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
@@ -211,7 +211,6 @@
// Crosstool and libc versions, you must always choose compatible ones.
defaultSysroot,
toolchainConfigInfo.getTargetLibc(),
- toolchainConfigInfo.getHostSystemName(),
ruleContext.getLabel(),
solibDirectory,
toolchainConfigInfo.getAbiVersion(),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
index 6b7f1bd..e5a43dd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
@@ -125,7 +125,6 @@
private final boolean isLtoIndexing;
private final PathFragment ldExecutable;
- private final String hostSystemName;
private final String targetCpu;
@@ -151,7 +150,6 @@
ImmutableMap<String, String> toolchainEnv,
ImmutableMap<String, String> executionRequirements,
PathFragment ldExecutable,
- String hostSystemName,
String targetCpu) {
super(owner, inputs, outputs, env);
this.mnemonic = getMnemonic(mnemonic, isLtoIndexing);
@@ -164,7 +162,6 @@
this.toolchainEnv = toolchainEnv;
this.executionRequirements = executionRequirements;
this.ldExecutable = ldExecutable;
- this.hostSystemName = hostSystemName;
this.targetCpu = targetCpu;
}
@@ -173,10 +170,6 @@
return targetCpu;
}
- public String getHostSystemName() {
- return hostSystemName;
- }
-
@Override
@VisibleForTesting
public NestedSet<Artifact> getPossibleInputsForTesting() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index a80bae7..d807f2e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -1023,7 +1023,6 @@
toolchainEnv,
ImmutableMap.copyOf(executionInfo),
toolchain.getToolPathFragment(Tool.LD, ruleErrorConsumer),
- toolchain.getHostSystemName(),
toolchain.getTargetCpu());
}
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/cpp/CcModuleApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/cpp/CcModuleApi.java
index eeb4510..a8f9469 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/cpp/CcModuleApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/cpp/CcModuleApi.java
@@ -1020,8 +1020,10 @@
@Param(
name = "host_system_name",
positional = false,
+ defaultValue = "None",
+ allowedTypes = {@ParamType(type = String.class), @ParamType(type = NoneType.class)},
named = true,
- doc = "The system name which is required by the toolchain to run."),
+ doc = "Ignored."),
@Param(
name = "target_system_name",
positional = false,
@@ -1096,7 +1098,7 @@
Sequence<?> artifactNamePatterns, // <StructApi> expected
Sequence<?> cxxBuiltInIncludeDirectories, // <String> expected
String toolchainIdentifier,
- String hostSystemName,
+ Object hostSystemName,
String targetSystemName,
String targetCpu,
String targetLibc,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java
index d9fd3c9..09bc43f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java
@@ -4568,13 +4568,6 @@
}
@Test
- public void testCcToolchainInfoFromStarlarkRequiredHostSystemName() throws Exception {
- setupStarlarkRuleForStringFieldsTesting("host_system_name");
- AssertionError e = assertThrows(AssertionError.class, () -> getConfiguredTarget("//foo:r"));
- assertThat(e).hasMessageThat().contains("missing 1 required named argument: host_system_name");
- }
-
- @Test
public void testCcToolchainInfoFromStarlarkRequiredTargetSystemName() throws Exception {
setupStarlarkRuleForStringFieldsTesting("target_system_name");
AssertionError e = assertThrows(AssertionError.class, () -> getConfiguredTarget("//foo:r"));