Add runtimes-on-demand support in cc_shared_library
PiperOrigin-RevId: 828942472
Change-Id: Ie46f83f4986d66d443e47dcb74043dbf4b7d3607
diff --git a/cc/private/rules_impl/cc_shared_library.bzl b/cc/private/rules_impl/cc_shared_library.bzl
index b7ee48f..de232a5 100644
--- a/cc/private/rules_impl/cc_shared_library.bzl
+++ b/cc/private/rules_impl/cc_shared_library.bzl
@@ -675,6 +675,9 @@
linking_context = _create_linker_context(linker_inputs)
+ cc_runtimes_deps = semantics.get_cc_runtimes(ctx, True)
+ runtimes_linking_contexts = cc_helper.get_linking_contexts_from_deps(cc_runtimes_deps)
+
user_link_flags = []
for user_link_flag in ctx.attr.user_link_flags:
user_link_flags.append(ctx.expand_location(user_link_flag, targets = ctx.attr.additional_linker_inputs))
@@ -724,7 +727,7 @@
actions = ctx.actions,
feature_configuration = feature_configuration,
cc_toolchain = cc_toolchain,
- linking_contexts = [linking_context],
+ linking_contexts = [linking_context] + runtimes_linking_contexts,
user_link_flags = user_link_flags,
additional_inputs = additional_inputs,
name = ctx.label.name,
@@ -1088,7 +1091,7 @@
</code></pre>"""),
"_def_parser": semantics.get_def_parser(),
}, # buildifier: disable=unsorted-dict-items
- toolchains = use_cc_toolchain(),
+ toolchains = use_cc_toolchain() + semantics.get_runtimes_toolchain(),
fragments = ["cpp"] + semantics.additional_fragments(),
)