aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-10-24 20:39:27 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-10-25 16:46:06 +0200
commit11b64fd1d37810524feb55093f482197aa9c785d (patch)
tree0bd04b69ed923fe64053a13943ac71dbffe84177 /src
parentedca92ef668399e6e305606bc551f46a3e766f05 (diff)
Move CppConfiguration#getAbi and #getAbiGlibcVersion to CcToolchainProvider.
PiperOrigin-RevId: 173287598
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java24
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java20
3 files changed, 36 insertions, 29 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 2f30b35c7e..097d4674eb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -382,6 +382,27 @@ public final class CcToolchainProvider extends ToolchainInfo {
return toolchainInfo.getToolPathFragment(tool);
}
+ /**
+ * Returns the abi we're using, which is a gcc version. E.g.: "gcc-3.4". Note that in practice we
+ * might be using gcc-3.4 as ABI even when compiling with gcc-4.1.0, because ABIs are backwards
+ * compatible.
+ */
+ // TODO(bazel-team): The javadoc should clarify how this is used in Blaze.
+ public String getAbi() {
+ return toolchainInfo.getAbi();
+ }
+
+ /**
+ * Returns the glibc version used by the abi we're using. This is a glibc version number (e.g.,
+ * "2.2.2"). Note that in practice we might be using glibc 2.2.2 as ABI even when compiling with
+ * gcc-4.2.2, gcc-4.3.1, or gcc-4.4.0 (which use glibc 2.3.6), because ABIs are backwards
+ * compatible.
+ */
+ // TODO(bazel-team): The javadoc should clarify how this is used in Blaze.
+ public String getAbiGlibcVersion() {
+ return toolchainInfo.getAbiGlibcVersion();
+ }
+
@SkylarkCallable(
name = "unfiltered_compiler_options_do_not_use",
doc =
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 5e9e96e721..306e456805 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
@@ -630,28 +630,6 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
}
/**
- * Returns the abi we're using, which is a gcc version. E.g.: "gcc-3.4".
- * Note that in practice we might be using gcc-3.4 as ABI even when compiling
- * with gcc-4.1.0, because ABIs are backwards compatible.
- */
- // TODO(bazel-team): The javadoc should clarify how this is used in Blaze.
- public String getAbi() {
- return cppToolchainInfo.getAbi();
- }
-
- /**
- * Returns the glibc version used by the abi we're using. This is a
- * glibc version number (e.g., "2.2.2"). Note that in practice we
- * might be using glibc 2.2.2 as ABI even when compiling with
- * gcc-4.2.2, gcc-4.3.1, or gcc-4.4.0 (which use glibc 2.3.6),
- * because ABIs are backwards compatible.
- */
- // TODO(bazel-team): The javadoc should clarify how this is used in Blaze.
- public String getAbiGlibcVersion() {
- return cppToolchainInfo.getAbiGlibcVersion();
- }
-
- /**
* Returns the configured features of the toolchain. Rules should not call this directly, but
* instead use {@code CcToolchainProvider.getFeatures}.
*/
@@ -1569,7 +1547,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
// CcToolchainProvider.
globalMakeEnvBuilder.putAll(getAdditionalMakeVariables());
- globalMakeEnvBuilder.put("ABI_GLIBC_VERSION", getAbiGlibcVersion());
+ globalMakeEnvBuilder.put("ABI_GLIBC_VERSION", cppToolchainInfo.getAbiGlibcVersion());
globalMakeEnvBuilder.put("ABI", cppToolchainInfo.getAbi());
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
index 73d031acf7..d8e310ff82 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
@@ -189,8 +189,8 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase {
assertThat(toolchain.getToolPathFragment(Tool.AR)).isEqualTo(getToolPath("/path-to-ar"));
- assertThat(toolchain.getAbi()).isEqualTo("abi-version");
- assertThat(toolchain.getAbiGlibcVersion()).isEqualTo("abi-libc-version");
+ assertThat(ccProvider.getAbi()).isEqualTo("abi-version");
+ assertThat(ccProvider.getAbiGlibcVersion()).isEqualTo("abi-libc-version");
assertThat(toolchain.supportsGoldLinker()).isTrue();
assertThat(toolchain.supportsStartEndLib()).isFalse();
@@ -499,8 +499,8 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase {
assertThat(toolchainA.getTargetCpu()).isEqualTo("piii");
assertThat(toolchainA.getTargetLibc()).isEqualTo("target-libc-A");
assertThat(toolchainA.getCompiler()).isEqualTo("compiler-A");
- assertThat(toolchainA.getAbi()).isEqualTo("abi-version-A");
- assertThat(toolchainA.getAbiGlibcVersion()).isEqualTo("abi-libc-version-A");
+ assertThat(ccProviderA.getAbi()).isEqualTo("abi-version-A");
+ assertThat(ccProviderA.getAbiGlibcVersion()).isEqualTo("abi-libc-version-A");
assertThat(toolchainA.getToolPathFragment(Tool.AR)).isEqualTo(getToolPath("path/to/ar-A"));
assertThat(toolchainA.getToolPathFragment(Tool.CPP)).isEqualTo(getToolPath("path/to/cpp-A"));
assertThat(toolchainA.getToolPathFragment(Tool.GCC)).isEqualTo(getToolPath("path/to/gcc-A"));
@@ -631,8 +631,8 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase {
assertThat(toolchainC.getTargetCpu()).isEqualTo("piii");
assertThat(toolchainC.getTargetLibc()).isEqualTo("target-libc-C");
assertThat(toolchainC.getCompiler()).isEqualTo("compiler-C");
- assertThat(toolchainC.getAbi()).isEqualTo("abi-version-C");
- assertThat(toolchainC.getAbiGlibcVersion()).isEqualTo("abi-libc-version-C");
+ assertThat(ccProviderC.getAbi()).isEqualTo("abi-version-C");
+ assertThat(ccProviderC.getAbiGlibcVersion()).isEqualTo("abi-libc-version-C");
// Don't bother with testing the list of tools again.
assertThat(toolchainC.supportsGoldLinker()).isFalse();
assertThat(toolchainC.supportsStartEndLib()).isFalse();
@@ -975,6 +975,14 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase {
+ " cpu: \"k8\""
+ " toolchain_identifier: \"custom-libs\""
+ "}"
+ + "default_toolchain {"
+ + " cpu: \"darwin\""
+ + " toolchain_identifier: \"custom-libs\""
+ + "}"
+ + "default_toolchain {"
+ + " cpu: \"x64_windows\""
+ + " toolchain_identifier: \"custom-libs\""
+ + "}"
+ "toolchain {" // "default-libs": runtime libraries in default locations.
+ " toolchain_identifier: \"default-libs\""
+ " host_system_name: \"host-system-name\""