diff options
author | Alex Humesky <ahumesky@google.com> | 2016-05-03 21:41:34 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-05-04 00:35:33 +0000 |
commit | f787d31e2c54c6ceba05df9d5aea713610554e53 (patch) | |
tree | f06ff806e36ab66d9a499d3e522a1a2546a886d7 /src/main/java/com/google/devtools/build/lib | |
parent | 9b97f76924decda0b342d2b6d7ed223493bcf302 (diff) |
Adds the compiler to the key for selecting the cc_toolchain label in
cc_toolchain_suite. This will allow selecting the correct toolchain based on
--compiler / --android_compiler.
RELNOTES: The key for the map to cc_toolchain_suite.toolchains is now a string
of the form "cpu|compiler" (previously, it was just "cpu").
--
MOS_MIGRATED_REVID=121418076
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
2 files changed, 8 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java index 469b2435c6..77fd1e6f41 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java @@ -39,7 +39,6 @@ import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CrosstoolRelease; -import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.DefaultCpuToolchain; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -151,9 +150,11 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { CrosstoolRelease crosstool = crosstoolStlPair.crosstoolRelease; StringBuilder toolchainMap = new StringBuilder(); - for (DefaultCpuToolchain defaultToolchain : crosstool.getDefaultToolchainList()) { - toolchainMap.append(String.format(" \"%s\": \":%s\",\n", - defaultToolchain.getCpu(), defaultToolchain.getToolchainIdentifier())); + for (CToolchain toolchain : crosstool.getToolchainList()) { + toolchainMap.append(String.format(" \"%s|%s\": \":%s\",\n", + toolchain.getTargetCpu(), + toolchain.getCompiler(), + toolchain.getToolchainIdentifier())); } String toolchainName = createToolchainName(crosstoolStlPair.stlImpl.getName()); 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 13d382a6fd..683e3d6c96 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 @@ -184,11 +184,11 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory { Rule ccToolchainSuite = (Rule) crosstoolTop; ccToolchainLabel = NonconfigurableAttributeMapper.of(ccToolchainSuite) .get("toolchains", BuildType.LABEL_DICT_UNARY) - .get(toolchain.getTargetCpu()); + .get(toolchain.getTargetCpu() + "|" + toolchain.getCompiler()); if (ccToolchainLabel == null) { throw new InvalidConfigurationException(String.format( - "cc_toolchain_suite '%s' does not contain a toolchain for CPU '%s'", - crosstoolTopLabel, toolchain.getTargetCpu())); + "cc_toolchain_suite '%s' does not contain a toolchain for CPU '%s' and compiler '%s'", + crosstoolTopLabel, toolchain.getTargetCpu(), toolchain.getCompiler())); } } else { try { |