diff options
author | 2017-10-24 20:39:27 +0200 | |
---|---|---|
committer | 2017-10-25 16:46:06 +0200 | |
commit | 11b64fd1d37810524feb55093f482197aa9c785d (patch) | |
tree | 0bd04b69ed923fe64053a13943ac71dbffe84177 /src | |
parent | edca92ef668399e6e305606bc551f46a3e766f05 (diff) |
Move CppConfiguration#getAbi and #getAbiGlibcVersion to CcToolchainProvider.
PiperOrigin-RevId: 173287598
Diffstat (limited to 'src')
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\"" |