diff options
author | 2017-02-02 11:42:49 +0000 | |
---|---|---|
committer | 2017-02-02 17:00:21 +0000 | |
commit | b99907661b785b0423cb2474da73205595b91fdd (patch) | |
tree | 9c258750e77e831e878fff9a3cd85e3796dfd327 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionConfigs.java | |
parent | cd8dde77ad57ade56d8dd153b1d9abd35fef46a7 (diff) |
Rollback of commit e2239cc61ca170ff9a65e1a94c3344d2b272c9e2.
*** 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.java | 80 |
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 ""; |