diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java | 6 | ||||
-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.java | 17 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java | 2 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java | 12 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java | 136 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java | 2 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java | 2 |
8 files changed, 100 insertions, 90 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. diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java index 5c94600ad3..965a4a56c6 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java @@ -94,7 +94,7 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { CToolchain.Builder toolchainBuilder = CToolchain.newBuilder(); TextFormat.merge(Joiner.on("").join(toolchain), toolchainBuilder); return new CcToolchainFeatures( - CrosstoolInfo.fromToolchain( + CcToolchainConfigInfo.fromToolchain( CrosstoolRelease.getDefaultInstance(), toolchainBuilder.buildPartial(), PathFragment.create("crosstool/"))); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java index 516b52f042..7d780edc46 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java @@ -73,7 +73,7 @@ public class LinkBuildVariablesTestCase extends BuildViewTestCase { CToolchain.Builder toolchainBuilder = CToolchain.newBuilder(); TextFormat.merge(Joiner.on("").join(toolchain), toolchainBuilder); return new CcToolchainFeatures( - CrosstoolInfo.fromToolchain( + CcToolchainConfigInfo.fromToolchain( CrosstoolRelease.getDefaultInstance(), toolchainBuilder.buildPartial(), /* crosstoolTop= */ PathFragment.EMPTY_FRAGMENT)); |