Skip to content

Commit 8cc8c2f

Browse files
hlopkokrasimirgg
andauthored
Do not include libraries when compiling (#3801)
In this PR, when in experimental_use_cc_common_link mode, we no longer include linker, runtime libraries, and any transitive libraries to link in the rustc compilation action. This makes incremental rebuilds faster by not recompiling when once of those linker inputs changes. Co-authored-by: Krasimir Georgiev <krasimir@google.com>
1 parent f29a63c commit 8cc8c2f

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

rust/private/rustc.bzl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -753,12 +753,12 @@ def collect_inputs(
753753
# Pass linker inputs only for linking-like actions, not for example where
754754
# the output is rlib. This avoids quadratic behavior where transitive noncrates are
755755
# flattened on each transitive rust_library dependency.
756-
additional_transitive_inputs = []
756+
libs_from_linker_inputs = []
757757
ambiguous_libs = {}
758758
if crate_info.type not in ("lib", "rlib"):
759759
linker_inputs = dep_info.transitive_noncrates.to_list()
760760
ambiguous_libs = _disambiguate_libs(ctx.actions, toolchain, crate_info, dep_info, use_pic)
761-
additional_transitive_inputs = _collect_libs_from_linker_inputs(linker_inputs, use_pic) + [
761+
libs_from_linker_inputs = _collect_libs_from_linker_inputs(linker_inputs, use_pic) + [
762762
additional_input
763763
for linker_input in linker_inputs
764764
for additional_input in linker_input.additional_inputs
@@ -802,16 +802,17 @@ def collect_inputs(
802802

803803
nolinkstamp_compile_inputs = depset(
804804
nolinkstamp_compile_direct_inputs +
805-
additional_transitive_inputs,
805+
([] if experimental_use_cc_common_link else libs_from_linker_inputs),
806806
transitive = [
807-
runtime_libs,
808-
linker_depset,
809807
crate_info.srcs,
810808
transitive_crate_outputs,
811809
crate_info.compile_data,
812810
dep_info.transitive_proc_macro_data,
813811
toolchain.all_files,
814-
],
812+
] + ([] if experimental_use_cc_common_link else [
813+
runtime_libs,
814+
linker_depset,
815+
]),
815816
)
816817

817818
# Register linkstamps when linking with rustc (when linking with

0 commit comments

Comments
 (0)