aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2017-02-02 11:42:49 +0000
committerGravatar Yun Peng <pcloudy@google.com>2017-02-02 17:00:21 +0000
commitb99907661b785b0423cb2474da73205595b91fdd (patch)
tree9c258750e77e831e878fff9a3cd85e3796dfd327 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java
parentcd8dde77ad57ade56d8dd153b1d9abd35fef46a7 (diff)
*** Reason for rollback *** Breaks //nlp/pragma/similarities/learners:abe_test : blaze test -c opt //nlp/pragma/similarities/learners:abe_test See [] *** Original change description *** Expose rpath entries as a build variable -- PiperOrigin-RevId: 146347832 MOS_MIGRATED_REVID=146347832
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java80
1 files changed, 50 insertions, 30 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java
index 9cb308f4e6..d614c3d063 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java
@@ -32,10 +32,7 @@ public class CppLinkActionConfigs {
}
public static String getCppLinkActionConfigs(
- CppLinkPlatform platform,
- Set<String> features,
- String cppLinkDynamicLibraryToolPath,
- boolean supportsEmbeddedRuntimes) {
+ CppLinkPlatform platform, Set<String> features, String cppLinkDynamicLibraryToolPath) {
String cppDynamicLibraryLinkerTool = "";
if (!features.contains("dynamic_library_linker_tool")) {
cppDynamicLibraryLinkerTool =
@@ -65,8 +62,9 @@ public class CppLinkActionConfigs {
" implies: 'symbol_counts'",
" implies: 'linkstamps'",
" implies: 'output_execpath_flags_executable'",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'force_pic_flags'",
" implies: 'legacy_link_flags'",
@@ -84,8 +82,9 @@ public class CppLinkActionConfigs {
" implies: 'shared_flag'",
" implies: 'linkstamps'",
" implies: 'output_execpath_flags'",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'legacy_link_flags'",
" implies: 'linker_param_file'",
@@ -96,8 +95,9 @@ public class CppLinkActionConfigs {
" tool {",
" tool_path: 'DUMMY_TOOL'",
" }",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'linker_param_file'",
"}",
@@ -107,8 +107,9 @@ public class CppLinkActionConfigs {
" tool {",
" tool_path: 'DUMMY_TOOL'",
" }",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'linker_param_file'",
"}",
@@ -118,8 +119,9 @@ public class CppLinkActionConfigs {
" tool {",
" tool_path: 'DUMMY_TOOL'",
" }",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'linker_param_file'",
"}",
@@ -129,8 +131,9 @@ public class CppLinkActionConfigs {
" tool {",
" tool_path: 'DUMMY_TOOL'",
" }",
- " implies: 'runtime_library_search_directories'",
+ " implies: 'runtime_root_flags'",
" implies: 'library_search_directories'",
+ " implies: 'input_param_flags'",
" implies: 'libraries_to_link'",
" implies: 'linker_param_file'",
"}",
@@ -220,9 +223,9 @@ public class CppLinkActionConfigs {
" }",
"}",
"feature {",
- " name: 'runtime_library_search_directories',",
+ " name: 'runtime_root_flags',",
" flag_set {",
- " expand_if_all_available: 'runtime_library_search_directories'",
+ " expand_if_all_available: 'runtime_root_flags'",
" action: 'c++-link-executable'",
" action: 'c++-link-dynamic-library'",
" action: 'c++-link-static-library'",
@@ -230,18 +233,19 @@ public class CppLinkActionConfigs {
" action: 'c++-link-pic-static-library'",
" action: 'c++-link-alwayslink-pic-static-library'",
" flag_group {",
- " iterate_over: 'runtime_library_search_directories'",
- " flag_group {",
- ifTrue(
- supportsEmbeddedRuntimes,
- " expand_if_all_available: 'is_cc_test_link_action'",
- " flag: ",
- " '-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}'",
- " }",
- " flag_group {",
- " expand_if_all_available: 'is_not_cc_test_link_action'"),
- " flag: '-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}'",
- " }",
+ " flag: '%{runtime_root_flags}'",
+ " }",
+ " }",
+ " flag_set {",
+ " expand_if_all_available: 'runtime_root_entries'",
+ " action: 'c++-link-executable'",
+ " action: 'c++-link-dynamic-library'",
+ " action: 'c++-link-static-library'",
+ " action: 'c++-link-alwayslink-static-library'",
+ " action: 'c++-link-pic-static-library'",
+ " action: 'c++-link-alwayslink-pic-static-library'",
+ " flag_group {",
+ " flag: '%{runtime_root_entries}'",
" }",
" }",
"}",
@@ -262,6 +266,22 @@ public class CppLinkActionConfigs {
" }",
"}",
"feature {",
+ " name: 'input_param_flags'",
+ " flag_set {",
+ " expand_if_all_available: 'libopts'",
+ " action: 'c++-link-executable'",
+ " action: 'c++-link-dynamic-library'",
+ " action: 'c++-link-static-library'",
+ " action: 'c++-link-alwayslink-static-library'",
+ " action: 'c++-link-pic-static-library'",
+ " action: 'c++-link-alwayslink-pic-static-library'",
+ " flag_group {",
+ " iterate_over: 'libopts'",
+ " flag: '%{libopts}'",
+ " }",
+ " }",
+ "}",
+ "feature {",
" name: 'libraries_to_link'",
" flag_set {",
" expand_if_all_available: 'libraries_to_link'",
@@ -480,15 +500,15 @@ public class CppLinkActionConfigs {
}
private static String ifLinux(CppLinkPlatform platform, String... lines) {
- return ifTrue(platform == CppLinkPlatform.LINUX, lines);
+ if (platform == CppLinkPlatform.LINUX) {
+ return Joiner.on("\n").join(lines);
+ } else {
+ return "";
+ }
}
private static String ifMac(CppLinkPlatform platform, String... lines) {
- return ifTrue(platform == CppLinkPlatform.MAC, lines);
- }
-
- private static String ifTrue(boolean condition, String... lines) {
- if (condition) {
+ if (platform == CppLinkPlatform.MAC) {
return Joiner.on("\n").join(lines);
} else {
return "";