Make C++ archiving use action_configs instead of hardcoded flags RELNOTES: Use action_config in crosstool for static library archiving, remove ar_flag. PiperOrigin-RevId: 157685703
diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl index d705bea..60a7711 100644 --- a/tools/cpp/CROSSTOOL.tpl +++ b/tools/cpp/CROSSTOOL.tpl
@@ -444,6 +444,7 @@ tool_path: 'wrapper/bin/msvc_link.bat' } implies: 'nologo' + implies: 'archiver_flags' implies: 'input_param_flags' implies: 'linker_param_file' implies: 'msvc_env' @@ -456,6 +457,7 @@ tool_path: 'wrapper/bin/msvc_link.bat' } implies: 'nologo' + implies: 'archiver_flags' implies: 'input_param_flags' implies: 'linker_param_file' implies: 'msvc_env' @@ -470,6 +472,7 @@ tool_path: 'wrapper/bin/msvc_link.bat' } implies: 'nologo' + implies: 'archiver_flags' implies: 'input_param_flags' implies: 'linker_param_file' implies: 'msvc_env' @@ -482,6 +485,7 @@ tool_path: 'wrapper/bin/msvc_link.bat' } implies: 'nologo' + implies: 'archiver_flags' implies: 'input_param_flags' implies: 'linker_param_file' implies: 'msvc_env' @@ -561,15 +565,26 @@ } feature { + name: 'archiver_flags' + flag_set { + expand_if_all_available: 'output_execpath' + 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: 'rcsD' + flag: '%{output_execpath}' + } + } + } + + feature { name: 'input_param_flags' flag_set { expand_if_all_available: 'library_search_directories' 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: 'library_search_directories' flag: "-L%{library_search_directories}" @@ -579,10 +594,6 @@ 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 { flag: '%{libopts}' }