aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-07-05 01:56:31 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-05 01:59:06 -0700
commit195c4e4c8fb3d4c6b1b3790b07266b0a5ff51d80 (patch)
treebe2098c2ea2b578a25c33fad5786152a677a524c
parent1387e6f48164f3842d71bc37226d6b07fd1aa7d5 (diff)
Add sysroot variable to cc_common.create_link_variables
Before this cl the sysroot variable was not present, and that's a bug. RELNOTES: None PiperOrigin-RevId: 203346557
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariables.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java29
2 files changed, 31 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariables.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariables.java
index 0868b20cee..63a4b484b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariables.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariables.java
@@ -123,7 +123,8 @@ public enum LinkBuildVariables {
boolean isLegacyFullyStaticLinkingMode,
boolean isStaticLinkingMode)
throws EvalException {
- CcToolchainVariables.Builder buildVariables = new CcToolchainVariables.Builder();
+ CcToolchainVariables.Builder buildVariables =
+ new CcToolchainVariables.Builder(ccToolchainProvider.getBuildVariables());
// symbol counting
if (symbolCounts != null) {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
index 3d4a6d5cd0..d52b0c438e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
@@ -503,6 +503,35 @@ public class SkylarkCcCommonTest extends BuildViewTestCase {
}
@Test
+ public void testEmptyLinkVariablesContainSysroot() throws Exception {
+ AnalysisMock.get()
+ .ccSupport()
+ .setupCrosstool(
+ mockToolsConfig,
+ "builtin_sysroot: '/foo/bar/sysroot'",
+ "feature {",
+ " name: 'sysroot'",
+ " enabled: true",
+ " flag_set {",
+ " action: 'c++-link-executable'",
+ " flag_group {",
+ " expand_if_all_available: 'sysroot'",
+ " flag: '--yolo_sysroot_flag=%{sysroot}'",
+ " }",
+ " }",
+ "}");
+ useConfiguration();
+ assertThat(
+ commandLineForVariables(
+ CppActionNames.CPP_LINK_EXECUTABLE,
+ "cc_common.create_link_variables(",
+ "feature_configuration = feature_configuration,",
+ "cc_toolchain = toolchain,",
+ ")"))
+ .contains("--yolo_sysroot_flag=/foo/bar/sysroot");
+ }
+
+ @Test
public void testLibrarySearchDirectoriesLinkVariables() throws Exception {
AnalysisMock.get()
.ccSupport()