diff options
4 files changed, 14 insertions, 10 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 { diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteTest.java index 2250e81de4..e72ddb5efb 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteTest.java @@ -33,7 +33,9 @@ public class CcToolchainSuiteTest extends BuildViewTestCase { "cc_toolchain_suite(", " name = 'suite',", " toolchains = { ", - " 'cpu': ':cc-toolchain', 'k8': ':cc-toolchain', 'darwin': ':cc-toolchain' ", + " 'cpu|cpu-compiler': ':cc-toolchain',", + " 'k8|k8-compiler': ':cc-toolchain',", + " 'darwin|cpu-compiler': ':cc-toolchain' ", " },", " proto = \"\"\"", "major_version: 'v1'", @@ -116,5 +118,6 @@ public class CcToolchainSuiteTest extends BuildViewTestCase { CppConfiguration cppConfig = getTargetConfiguration().getFragment(CppConfiguration.class); assertThat(cppConfig.getTargetCpu()).isEqualTo("cpu"); assertThat(cppConfig.getAbi()).isEqualTo("cpu-abi"); + assertThat(cppConfig.getCompiler()).isEqualTo("cpu-compiler"); } } diff --git a/tools/cpp/BUILD.tpl b/tools/cpp/BUILD.tpl index f633425bfd..036c7ec85c 100644 --- a/tools/cpp/BUILD.tpl +++ b/tools/cpp/BUILD.tpl @@ -19,8 +19,8 @@ filegroup( cc_toolchain_suite( name = "toolchain", toolchains = { - "%{name}": ":cc-compiler-%{name}", - "armeabi-v7a": ":cc-compiler-armeabi-v7a", + "%{name}|compiler": ":cc-compiler-%{name}", + "armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a", }, ) |