diff options
author | Marcel Hlopko <hlopko@google.com> | 2017-03-08 12:25:00 +0000 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-03-08 13:56:02 +0000 |
commit | 7f7d6d2c7b000e72cc80e8c30f5d5835ae4f35a1 (patch) | |
tree | a4c5115b4bdfcbeaac0e0a37cd795d75d850b365 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | 967de7358db7cf774910019cefdaf8fd2ff5c789 (diff) |
Introduce strip_debug_symbols feature to crosstool
This cl removes hard coded -Wl,-S flag from Blaze and moves it to the
crosstool.
--
PiperOrigin-RevId: 149525225
MOS_MIGRATED_REVID=149525225
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
3 files changed, 25 insertions, 4 deletions
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 8ce165fe3b..342ad72809 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 @@ -1115,10 +1115,6 @@ public class CppConfiguration extends BuildConfiguration.Fragment { List<String> result = new ArrayList<>(); result.addAll(commonLinkOptions); - if (stripBinaries) { - result.add("-Wl,-S"); - } - result.addAll(linkOptionsFromCompilationMode.get(compilationMode)); result.addAll(linkOptionsFromLipoMode.get(lipoMode)); result.addAll(linkOptionsFromLinkingMode.get(linkingMode)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java index f8027391ae..9af79a77a4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java @@ -124,6 +124,9 @@ public class CppLinkActionBuilder { /** A build variable whose presence indicates that PIC code should be generated. */ public static final String FORCE_PIC_VARIABLE = "force_pic"; + /** A build variable whose presence indicates that the debug symbols should be stripped. */ + public static final String STRIP_DEBUG_SYMBOLS_VARIABLE = "strip_debug_symbols"; + /** A build variable whose presence indicates that this action is a cc_test linking action. */ public static final String IS_CC_TEST_LINK_ACTION_VARIABLE = "is_cc_test_link_action"; @@ -1313,6 +1316,10 @@ public class CppLinkActionBuilder { buildVariables.addStringVariable(FORCE_PIC_VARIABLE, ""); } + if (cppConfiguration.shouldStripBinaries()) { + buildVariables.addStringVariable(STRIP_DEBUG_SYMBOLS_VARIABLE, ""); + } + if (useTestOnlyFlags()) { buildVariables.addStringVariable(IS_CC_TEST_LINK_ACTION_VARIABLE, ""); } else { 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 2cb39abb86..14a053bb50 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 @@ -63,6 +63,7 @@ public class CppLinkActionConfigs { " tool_path: 'DUMMY_TOOL'", " }", " implies: 'symbol_counts'", + " implies: 'strip_debug_symbols'", " implies: 'linkstamps'", " implies: 'output_execpath_flags_executable'", " implies: 'runtime_library_search_directories'", @@ -81,6 +82,7 @@ public class CppLinkActionConfigs { " implies: 'build_interface_libraries'", " implies: 'dynamic_library_linker_tool'", " implies: 'symbol_counts'", + " implies: 'strip_debug_symbols'", " implies: 'shared_flag'", " implies: 'linkstamps'", " implies: 'output_execpath_flags'", @@ -96,6 +98,7 @@ public class CppLinkActionConfigs { " tool {", " tool_path: 'DUMMY_TOOL'", " }", + " implies: 'strip_debug_symbols'", " implies: 'runtime_library_search_directories'", " implies: 'library_search_directories'", " implies: 'libraries_to_link'", @@ -107,6 +110,7 @@ public class CppLinkActionConfigs { " tool {", " tool_path: 'DUMMY_TOOL'", " }", + " implies: 'strip_debug_symbols'", " implies: 'runtime_library_search_directories'", " implies: 'library_search_directories'", " implies: 'libraries_to_link'", @@ -118,6 +122,7 @@ public class CppLinkActionConfigs { " tool {", " tool_path: 'DUMMY_TOOL'", " }", + " implies: 'strip_debug_symbols'", " implies: 'runtime_library_search_directories'", " implies: 'library_search_directories'", " implies: 'libraries_to_link'", @@ -129,6 +134,7 @@ public class CppLinkActionConfigs { " tool {", " tool_path: 'DUMMY_TOOL'", " }", + " implies: 'strip_debug_symbols'", " implies: 'runtime_library_search_directories'", " implies: 'library_search_directories'", " implies: 'libraries_to_link'", @@ -444,6 +450,18 @@ public class CppLinkActionConfigs { " }", "}", "feature {", + " name: 'strip_debug_symbols'", + " flag_set {", + " action: 'c++-link-executable'", + " action: 'c++-link-dynamic-library'", + " action: 'c++-link-interface-dynamic-library'", + " flag_group {", + " expand_if_all_available: 'strip_debug_symbols'", + " flag: '-Wl,-S'", + " }", + " }", + "}", + "feature {", " name: 'linker_param_file'", " flag_set {", " expand_if_all_available: 'linker_param_file'", |