aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar rosica <rosica@google.com>2018-07-18 04:44:22 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-18 04:45:26 -0700
commit47819a99f2bb10429315ad181811f4359103d6d5 (patch)
tree93a267f7916a954ff84e3dde39b0f6d8347b42ba /src/main/java/com/google
parentce9305e5bb903f8a200970aa020d3b10fa60ee13 (diff)
Rename CrosstoolInfo.java to CcToolchainConfigInfo.java
RELNOTES: None. PiperOrigin-RevId: 205060182
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java (renamed from src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolInfo.java)13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java136
6 files changed, 98 insertions, 88 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
index 28ab7dedc7..ddf2a7f1e6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
@@ -657,15 +657,15 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
toolchain =
CppToolchainInfo.addLegacyFeatures(
toolchain, cppConfiguration.getCrosstoolTopPathFragment());
- CrosstoolInfo crosstoolInfo =
- CrosstoolInfo.fromToolchain(
+ CcToolchainConfigInfo ccToolchainConfigInfo =
+ CcToolchainConfigInfo.fromToolchain(
cppConfiguration.getCrosstoolFile().getProto(),
toolchain,
cppConfiguration.getCrosstoolTopPathFragment());
return CppToolchainInfo.create(
cppConfiguration.getCrosstoolTopPathFragment(),
cppConfiguration.getCcToolchainRuleLabel(),
- crosstoolInfo,
+ ccToolchainConfigInfo,
cppConfiguration.disableLegacyCrosstoolFields(),
cppConfiguration.disableCompilationModeFlags(),
cppConfiguration.disableLinkingModeFlags());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java
index 1ea9950b28..d9b81a510c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainConfigInfo.java
@@ -32,9 +32,10 @@ import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.Linki
/** Information describing C++ toolchain derived from CROSSTOOL file. */
@Immutable
-public class CrosstoolInfo extends NativeInfo {
- public static final NativeProvider<CrosstoolInfo> PROVIDER =
- new NativeProvider<CrosstoolInfo>(CrosstoolInfo.class, "CrosstoolInfo") {};
+public class CcToolchainConfigInfo extends NativeInfo {
+ public static final NativeProvider<CcToolchainConfigInfo> PROVIDER =
+ new NativeProvider<CcToolchainConfigInfo>(
+ CcToolchainConfigInfo.class, "CcToolchainConfigInfo") {};
private final ImmutableList<ActionConfig> actionConfigs;
private final ImmutableList<Feature> features;
@@ -87,7 +88,7 @@ public class CrosstoolInfo extends NativeInfo {
private final boolean hasDynamicLinkingModeFlags;
@AutoCodec.Instantiator
- protected CrosstoolInfo(
+ protected CcToolchainConfigInfo(
ImmutableList<ActionConfig> actionConfigs,
ImmutableList<Feature> features,
ImmutableList<ArtifactNamePattern> artifactNamePatterns,
@@ -187,7 +188,7 @@ public class CrosstoolInfo extends NativeInfo {
this.hasDynamicLinkingModeFlags = hasDynamicLinkingModeFlags;
}
- public static CrosstoolInfo fromToolchain(
+ public static CcToolchainConfigInfo fromToolchain(
CrosstoolRelease file, CToolchain toolchain, PathFragment crosstoolTop)
throws InvalidConfigurationException {
@@ -263,7 +264,7 @@ public class CrosstoolInfo extends NativeInfo {
}
}
- return new CrosstoolInfo(
+ return new CcToolchainConfigInfo(
actionConfigBuilder.build(),
featureBuilder.build(),
artifactNamePatternBuilder.build(),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
index 60d2c1113f..8281304e35 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
@@ -1338,11 +1338,12 @@ public class CcToolchainFeatures implements Serializable {
/**
* Constructs the feature configuration from a {@code crosstoolInfo}.
*
- * @param crosstoolInfo the toolchain information as specified by the user.
+ * @param ccToolchainConfigInfo the toolchain information as specified by the user.
* @throws InvalidConfigurationException if the configuration has logical errors.
*/
@VisibleForTesting
- public CcToolchainFeatures(CrosstoolInfo crosstoolInfo) throws InvalidConfigurationException {
+ public CcToolchainFeatures(CcToolchainConfigInfo ccToolchainConfigInfo)
+ throws InvalidConfigurationException {
// Build up the feature/action config graph. We refer to features/action configs as
// 'selectables'.
// First, we build up the map of name -> selectables in one pass, so that earlier selectables
@@ -1354,7 +1355,7 @@ public class CcToolchainFeatures implements Serializable {
ImmutableMap.Builder<String, ActionConfig> actionConfigsByActionName = ImmutableMap.builder();
ImmutableList.Builder<String> defaultSelectablesBuilder = ImmutableList.builder();
- for (Feature feature : crosstoolInfo.getFeatures()) {
+ for (Feature feature : ccToolchainConfigInfo.getFeatures()) {
selectablesBuilder.add(feature);
selectablesByName.put(feature.getName(), feature);
if (feature.isEnabled()) {
@@ -1362,7 +1363,7 @@ public class CcToolchainFeatures implements Serializable {
}
}
- for (ActionConfig actionConfig : crosstoolInfo.getActionConfigs()) {
+ for (ActionConfig actionConfig : ccToolchainConfigInfo.getActionConfigs()) {
selectablesBuilder.add(actionConfig);
selectablesByName.put(actionConfig.getName(), actionConfig);
actionConfigsByActionName.put(actionConfig.getActionName(), actionConfig);
@@ -1375,12 +1376,12 @@ public class CcToolchainFeatures implements Serializable {
this.selectables = selectablesBuilder.build();
this.selectablesByName = ImmutableMap.copyOf(selectablesByName);
- checkForActionNameDups(crosstoolInfo.getActionConfigs());
+ checkForActionNameDups(ccToolchainConfigInfo.getActionConfigs());
checkForActivatableDups(this.selectables);
this.actionConfigsByActionName = actionConfigsByActionName.build();
- this.artifactNamePatterns = crosstoolInfo.getArtifactNamePatterns();
+ this.artifactNamePatterns = ccToolchainConfigInfo.getArtifactNamePatterns();
// Next, we build up all forward references for 'implies', 'requires', and 'provides' edges.
ImmutableMultimap.Builder<CrosstoolSelectable, CrosstoolSelectable> implies =
@@ -1394,7 +1395,7 @@ public class CcToolchainFeatures implements Serializable {
ImmutableMultimap.Builder<CrosstoolSelectable, CrosstoolSelectable> requiredBy =
ImmutableMultimap.builder();
- for (Feature feature : crosstoolInfo.getFeatures()) {
+ for (Feature feature : ccToolchainConfigInfo.getFeatures()) {
String name = feature.getName();
CrosstoolSelectable selectable = selectablesByName.get(name);
for (ImmutableSet<String> requiredFeatures : feature.getRequires()) {
@@ -1416,7 +1417,7 @@ public class CcToolchainFeatures implements Serializable {
}
}
- for (ActionConfig actionConfig : crosstoolInfo.getActionConfigs()) {
+ for (ActionConfig actionConfig : ccToolchainConfigInfo.getActionConfigs()) {
String name = actionConfig.getName();
CrosstoolSelectable selectable = selectablesByName.get(name);
for (String impliedName : actionConfig.getImplies()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 4bbfeafc16..8a9fc665d4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -237,7 +237,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment
CppToolchainInfo.create(
crosstoolTopPathFragment,
params.ccToolchainLabel,
- params.crosstoolInfo,
+ params.ccToolchainConfigInfo,
cppOptions.disableLegacyCrosstoolFields,
cppOptions.disableCompilationModeFlags,
cppOptions.disableLinkingModeFlags);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
index 8f91dbaf93..a427752411 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
@@ -89,7 +89,7 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
protected final Label fdoOptimizeLabel;
protected final Label sysrootLabel;
protected final CpuTransformer cpuTransformer;
- protected final CrosstoolInfo crosstoolInfo;
+ protected final CcToolchainConfigInfo ccToolchainConfigInfo;
CppConfigurationParameters(
CrosstoolConfigurationLoader.CrosstoolFile crosstoolFile,
@@ -102,7 +102,7 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
Label stlLabel,
Label sysrootLabel,
CpuTransformer cpuTransformer,
- CrosstoolInfo crosstoolInfo) {
+ CcToolchainConfigInfo ccToolchainConfigInfo) {
this.crosstoolFile = crosstoolFile;
this.cacheKeySuffix = cacheKeySuffix;
this.commonOptions = buildOptions.get(BuildConfiguration.Options.class);
@@ -114,7 +114,7 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
this.stlLabel = stlLabel;
this.sysrootLabel = sysrootLabel;
this.cpuTransformer = cpuTransformer;
- this.crosstoolInfo = crosstoolInfo;
+ this.ccToolchainConfigInfo = ccToolchainConfigInfo;
}
}
@@ -245,8 +245,8 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
CppToolchainInfo.addLegacyFeatures(
toolchain, crosstoolTopLabel.getPackageIdentifier().getPathUnderExecRoot());
- CrosstoolInfo crosstoolInfo =
- CrosstoolInfo.fromToolchain(
+ CcToolchainConfigInfo ccToolchainConfigInfo =
+ CcToolchainConfigInfo.fromToolchain(
file.getProto(),
toolchain,
crosstoolTopLabel.getPackageIdentifier().getPathUnderExecRoot());
@@ -264,7 +264,7 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
stlLabel,
sysrootLabel,
cpuTransformer,
- crosstoolInfo);
+ ccToolchainConfigInfo);
}
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
index de7514e72b..9abfe87929 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java
@@ -58,7 +58,7 @@ import javax.annotation.Nullable;
@AutoCodec
@Immutable
public final class CppToolchainInfo {
- private final CrosstoolInfo crosstoolInfo;
+ private final CcToolchainConfigInfo ccToolchainConfigInfo;
private final PathFragment crosstoolTopPathFragment;
private final String toolchainIdentifier;
private final CcToolchainFeatures toolchainFeatures;
@@ -109,19 +109,21 @@ public final class CppToolchainInfo {
private final boolean supportsGoldLinker;
private final boolean toolchainNeedsPic;
- /** Creates a CppToolchainInfo from CROSSTOOL info encapsulated in {@link CrosstoolInfo}. */
+ /**
+ * Creates a CppToolchainInfo from CROSSTOOL info encapsulated in {@link CcToolchainConfigInfo}.
+ */
public static CppToolchainInfo create(
PathFragment crosstoolTopPathFragment,
Label toolchainLabel,
- CrosstoolInfo crosstoolInfo,
+ CcToolchainConfigInfo ccToolchainConfigInfo,
boolean disableLegacyCrosstoolFields,
boolean disableCompilationModeFlags,
boolean disableLinkingModeFlags)
throws InvalidConfigurationException {
ImmutableMap<String, PathFragment> toolPaths =
- computeToolPaths(crosstoolInfo, crosstoolTopPathFragment);
+ computeToolPaths(ccToolchainConfigInfo, crosstoolTopPathFragment);
PathFragment defaultSysroot =
- CppConfiguration.computeDefaultSysroot(crosstoolInfo.getBuiltinSysroot());
+ CppConfiguration.computeDefaultSysroot(ccToolchainConfigInfo.getBuiltinSysroot());
ImmutableListMultimap.Builder<LinkingMode, String> linkOptionsFromLinkingModeBuilder =
ImmutableListMultimap.builder();
@@ -133,16 +135,16 @@ public final class CppToolchainInfo {
// - a "DYNAMIC" section in linking_mode_flags (even if no flags are needed)
// - a non-empty list in one of the dynamicLibraryLinkerFlag fields
// If none of the above contain data, then the toolchain can't do dynamic linking.
- haveDynamicMode = crosstoolInfo.hasDynamicLinkingModeFlags();
+ haveDynamicMode = ccToolchainConfigInfo.hasDynamicLinkingModeFlags();
linkOptionsFromLinkingModeBuilder.putAll(
- LinkingMode.DYNAMIC, crosstoolInfo.getDynamicLinkingModeFlags());
+ LinkingMode.DYNAMIC, ccToolchainConfigInfo.getDynamicLinkingModeFlags());
linkOptionsFromLinkingModeBuilder.putAll(
- LinkingMode.LEGACY_FULLY_STATIC, crosstoolInfo.getFullyStaticLinkingModeFlags());
+ LinkingMode.LEGACY_FULLY_STATIC, ccToolchainConfigInfo.getFullyStaticLinkingModeFlags());
linkOptionsFromLinkingModeBuilder.putAll(
- LinkingMode.STATIC, crosstoolInfo.getMostlyStaticLinkingModeFlags());
+ LinkingMode.STATIC, ccToolchainConfigInfo.getMostlyStaticLinkingModeFlags());
linkOptionsFromLinkingModeBuilder.putAll(
LinkingMode.LEGACY_MOSTLY_STATIC_LIBRARIES,
- crosstoolInfo.getMostlyStaticLibrariesLinkingModeFlags());
+ ccToolchainConfigInfo.getMostlyStaticLibrariesLinkingModeFlags());
}
ImmutableListMultimap.Builder<CompilationMode, String> cFlagsBuilder =
@@ -155,90 +157,96 @@ public final class CppToolchainInfo {
if (!disableCompilationModeFlags) {
cFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.OPT),
- crosstoolInfo.getOptCompilationModeCompilerFlags());
+ ccToolchainConfigInfo.getOptCompilationModeCompilerFlags());
cxxFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.OPT),
- crosstoolInfo.getOptCompilationModeCxxFlags());
+ ccToolchainConfigInfo.getOptCompilationModeCxxFlags());
linkOptionsFromCompilationModeBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.OPT),
- crosstoolInfo.getOptCompilationModeLinkerFlags());
+ ccToolchainConfigInfo.getOptCompilationModeLinkerFlags());
cFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.DBG),
- crosstoolInfo.getDbgCompilationModeCompilerFlags());
+ ccToolchainConfigInfo.getDbgCompilationModeCompilerFlags());
cxxFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.DBG),
- crosstoolInfo.getDbgCompilationModeCxxFlags());
+ ccToolchainConfigInfo.getDbgCompilationModeCxxFlags());
linkOptionsFromCompilationModeBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.DBG),
- crosstoolInfo.getDbgCompilationModeLinkerFlags());
+ ccToolchainConfigInfo.getDbgCompilationModeLinkerFlags());
cFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.FASTBUILD),
- crosstoolInfo.getFastbuildCompilationModeCompilerFlags());
+ ccToolchainConfigInfo.getFastbuildCompilationModeCompilerFlags());
cxxFlagsBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.FASTBUILD),
- crosstoolInfo.getFastbuildCompilationModeCxxFlags());
+ ccToolchainConfigInfo.getFastbuildCompilationModeCxxFlags());
linkOptionsFromCompilationModeBuilder.putAll(
importCompilationMode(CrosstoolConfig.CompilationMode.FASTBUILD),
- crosstoolInfo.getFastbuildCompilationModeLinkerFlags());
+ ccToolchainConfigInfo.getFastbuildCompilationModeLinkerFlags());
}
try {
return new CppToolchainInfo(
- crosstoolInfo,
+ ccToolchainConfigInfo,
crosstoolTopPathFragment,
- crosstoolInfo.getToolchainIdentifier(),
+ ccToolchainConfigInfo.getToolchainIdentifier(),
toolPaths,
- crosstoolInfo.getCompiler(),
- crosstoolInfo.getAbiLibcVersion(),
- crosstoolInfo.getTargetCpu(),
- crosstoolInfo.getCcTargetOs(),
- crosstoolInfo.getCxxBuiltinIncludeDirectories(),
+ ccToolchainConfigInfo.getCompiler(),
+ ccToolchainConfigInfo.getAbiLibcVersion(),
+ ccToolchainConfigInfo.getTargetCpu(),
+ ccToolchainConfigInfo.getCcTargetOs(),
+ ccToolchainConfigInfo.getCxxBuiltinIncludeDirectories(),
defaultSysroot,
// The runtime sysroot should really be set from --grte_top. However, currently libc has
// no way to set the sysroot. The CROSSTOOL file does set the runtime sysroot, in the
// builtin_sysroot field. This implies that you can not arbitrarily mix and match
// Crosstool and libc versions, you must always choose compatible ones.
defaultSysroot,
- crosstoolInfo.getTargetLibc(),
- crosstoolInfo.getHostSystemName(),
+ ccToolchainConfigInfo.getTargetLibc(),
+ ccToolchainConfigInfo.getHostSystemName(),
+ disableLegacyCrosstoolFields
+ ? ImmutableList.of()
+ : ccToolchainConfigInfo.getDynamicLibraryLinkerFlags(),
disableLegacyCrosstoolFields
? ImmutableList.of()
- : crosstoolInfo.getDynamicLibraryLinkerFlags(),
- disableLegacyCrosstoolFields ? ImmutableList.of() : crosstoolInfo.getLinkerFlags(),
+ : ccToolchainConfigInfo.getLinkerFlags(),
linkOptionsFromLinkingModeBuilder.build(),
linkOptionsFromCompilationModeBuilder.build(),
disableLegacyCrosstoolFields
? ImmutableList.of()
- : crosstoolInfo.getTestOnlyLinkerFlags(),
- crosstoolInfo.getLdEmbedFlags(),
- crosstoolInfo.getObjcopyEmbedFlags(),
+ : ccToolchainConfigInfo.getTestOnlyLinkerFlags(),
+ ccToolchainConfigInfo.getLdEmbedFlags(),
+ ccToolchainConfigInfo.getObjcopyEmbedFlags(),
toolchainLabel,
toolchainLabel.getRelativeWithRemapping(
- !crosstoolInfo.getStaticRuntimesFilegroup().isEmpty()
- ? crosstoolInfo.getStaticRuntimesFilegroup()
- : "static-runtime-libs-" + crosstoolInfo.getTargetCpu(),
+ !ccToolchainConfigInfo.getStaticRuntimesFilegroup().isEmpty()
+ ? ccToolchainConfigInfo.getStaticRuntimesFilegroup()
+ : "static-runtime-libs-" + ccToolchainConfigInfo.getTargetCpu(),
ImmutableMap.of()),
toolchainLabel.getRelativeWithRemapping(
- !crosstoolInfo.getDynamicRuntimesFilegroup().isEmpty()
- ? crosstoolInfo.getDynamicRuntimesFilegroup()
- : "dynamic-runtime-libs-" + crosstoolInfo.getTargetCpu(),
+ !ccToolchainConfigInfo.getDynamicRuntimesFilegroup().isEmpty()
+ ? ccToolchainConfigInfo.getDynamicRuntimesFilegroup()
+ : "dynamic-runtime-libs-" + ccToolchainConfigInfo.getTargetCpu(),
ImmutableMap.of()),
- "_solib_" + crosstoolInfo.getTargetCpu(),
- crosstoolInfo.getAbiVersion(),
- crosstoolInfo.getTargetSystemName(),
- computeAdditionalMakeVariables(crosstoolInfo),
- disableLegacyCrosstoolFields ? ImmutableList.of() : crosstoolInfo.getCompilerFlags(),
- disableLegacyCrosstoolFields ? ImmutableList.of() : crosstoolInfo.getCxxFlags(),
+ "_solib_" + ccToolchainConfigInfo.getTargetCpu(),
+ ccToolchainConfigInfo.getAbiVersion(),
+ ccToolchainConfigInfo.getTargetSystemName(),
+ computeAdditionalMakeVariables(ccToolchainConfigInfo),
+ disableLegacyCrosstoolFields
+ ? ImmutableList.of()
+ : ccToolchainConfigInfo.getCompilerFlags(),
+ disableLegacyCrosstoolFields ? ImmutableList.of() : ccToolchainConfigInfo.getCxxFlags(),
cFlagsBuilder.build(),
cxxFlagsBuilder.build(),
- disableLegacyCrosstoolFields ? ImmutableList.of() : crosstoolInfo.getUnfilteredCxxFlags(),
- crosstoolInfo.supportsFission(),
- crosstoolInfo.supportsStartEndLib(),
- crosstoolInfo.supportsEmbeddedRuntimes(),
- haveDynamicMode || !crosstoolInfo.getDynamicLibraryLinkerFlags().isEmpty(),
- crosstoolInfo.supportsInterfaceSharedObjects(),
- crosstoolInfo.supportsGoldLinker(),
- crosstoolInfo.needsPic());
+ disableLegacyCrosstoolFields
+ ? ImmutableList.of()
+ : ccToolchainConfigInfo.getUnfilteredCxxFlags(),
+ ccToolchainConfigInfo.supportsFission(),
+ ccToolchainConfigInfo.supportsStartEndLib(),
+ ccToolchainConfigInfo.supportsEmbeddedRuntimes(),
+ haveDynamicMode || !ccToolchainConfigInfo.getDynamicLibraryLinkerFlags().isEmpty(),
+ ccToolchainConfigInfo.supportsInterfaceSharedObjects(),
+ ccToolchainConfigInfo.supportsGoldLinker(),
+ ccToolchainConfigInfo.needsPic());
} catch (LabelSyntaxException e) {
// All of the above label.getRelativeWithRemapping() calls are valid labels, and the
// crosstool_top was already checked earlier in the process.
@@ -248,7 +256,7 @@ public final class CppToolchainInfo {
@AutoCodec.Instantiator
CppToolchainInfo(
- CrosstoolInfo crosstoolInfo,
+ CcToolchainConfigInfo ccToolchainConfigInfo,
PathFragment crosstoolTopPathFragment,
String toolchainIdentifier,
ImmutableMap<String, PathFragment> toolPaths,
@@ -288,11 +296,11 @@ public final class CppToolchainInfo {
boolean supportsGoldLinker,
boolean toolchainNeedsPic)
throws InvalidConfigurationException {
- this.crosstoolInfo = crosstoolInfo;
+ this.ccToolchainConfigInfo = ccToolchainConfigInfo;
this.crosstoolTopPathFragment = crosstoolTopPathFragment;
this.toolchainIdentifier = toolchainIdentifier;
// Since this field can be derived from `crosstoolInfo`, it is re-derived instead of serialized.
- this.toolchainFeatures = new CcToolchainFeatures(crosstoolInfo);
+ this.toolchainFeatures = new CcToolchainFeatures(ccToolchainConfigInfo);
this.toolPaths = toolPaths;
this.compiler = compiler;
this.abiGlibcVersion = abiGlibcVersion;
@@ -480,11 +488,11 @@ public final class CppToolchainInfo {
}
/**
- * Returns the {@link CrosstoolInfo} instance that was used to initialize this {@link
+ * Returns the {@link CcToolchainConfigInfo} instance that was used to initialize this {@link
* CppToolchainInfo}.
*/
- public CrosstoolInfo getCrosstoolInfo() {
- return crosstoolInfo;
+ public CcToolchainConfigInfo getCcToolchainConfigInfo() {
+ return ccToolchainConfigInfo;
}
/**
@@ -762,22 +770,22 @@ public final class CppToolchainInfo {
}
private static ImmutableMap<String, String> computeAdditionalMakeVariables(
- CrosstoolInfo crosstoolInfo) {
+ CcToolchainConfigInfo ccToolchainConfigInfo) {
Map<String, String> makeVariablesBuilder = new HashMap<>();
// The following are to be used to allow some build rules to avoid the limits on stack frame
// sizes and variable-length arrays. Ensure that these are always set.
makeVariablesBuilder.put("STACK_FRAME_UNLIMITED", "");
makeVariablesBuilder.put(CppConfiguration.CC_FLAGS_MAKE_VARIABLE_NAME, "");
- for (Pair<String, String> variable : crosstoolInfo.getMakeVariables()) {
+ for (Pair<String, String> variable : ccToolchainConfigInfo.getMakeVariables()) {
makeVariablesBuilder.put(variable.getFirst(), variable.getSecond());
}
return ImmutableMap.copyOf(makeVariablesBuilder);
}
private static ImmutableMap<String, PathFragment> computeToolPaths(
- CrosstoolInfo crosstoolInfo, PathFragment crosstoolTopPathFragment) {
+ CcToolchainConfigInfo ccToolchainConfigInfo, PathFragment crosstoolTopPathFragment) {
Map<String, PathFragment> toolPathsCollector = Maps.newHashMap();
- for (Pair<String, String> tool : crosstoolInfo.getToolPaths()) {
+ for (Pair<String, String> tool : ccToolchainConfigInfo.getToolPaths()) {
String pathStr = tool.getSecond();
if (!PathFragment.isNormalized(pathStr)) {
throw new IllegalArgumentException("The include path '" + pathStr + "' is not normalized.");
@@ -799,7 +807,7 @@ public final class CppToolchainInfo {
tool -> {
if (tool == CppConfiguration.Tool.DWP) {
// When fission is unsupported, don't check for the dwp tool.
- return crosstoolInfo.supportsFission();
+ return ccToolchainConfigInfo.supportsFission();
} else if (tool == CppConfiguration.Tool.LLVM_PROFDATA) {
// TODO(tmsriram): Fix this to check if this is a llvm crosstool
// and return true. This needs changes to crosstool_config.proto.