aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteTest.java5
-rw-r--r--tools/cpp/BUILD.tpl4
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",
},
)