tree 6f96fd37bb5621d78ad8a0476b7832e0b8fb0170
parent 90808f0dc47e289bc149561ffcc8451b64b5a8bd
author scentini <rosica@google.com> 1660055349 +0200
committer GitHub <noreply@github.com> 1660055349 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJi8m81CRBK7hj4Ov3rIwAA2BoIACoTpNmfr/TI6j5CVq3YdqXm
 FFUoWd5M0nBhvBoow3m2aEXfWiYInms+bmE/SeO2GKcrG8MEsftiWBtK/lFVPaRB
 bJBqxBwhRsq5vu8hVowpdhTqN2vCGhOdKfsgWE/4MRrzWNJOK8qMUPbyAU/iDJY7
 k/EWKcmd+iaLll8CciGwlslO5brjGLEgiD4BQ2fWKfzzkkAQ7mBOrpmlMkuFOlkp
 +LLT8APtZBPuvGRonnd5hXl7hPBKSc1SWMZEFWIDcqNngTNYFfewg7lo4j3KHZgb
 BEUlMihFFEuiS2p5IAoVhWvWVJvCDX8jzfPe0SgZ1wD4tbLnWrmC3WngJcSQyzM=
 =Uc4X
 -----END PGP SIGNATURE-----
 

Apply get_lib_name correctly to the C++ runtime libraries (#1508)

https://github.com/bazelbuild/rules_rust/pull/1500 added an additional `for_windows` parameter to `get_lib_name`. I missed the fact that we also pass that function to `map_each` here: https://github.com/bazelbuild/rules_rust/blob/main/rust/private/rustc.bzl#L1671
and as such, this code does not always work correctly (we don't get to pass the `for_windows` parameter, and internally at Google it ended up evaluating to `True` on Linux builds).

I tried to avoid flattening the `cc_toolchain.dynamic_runtime_lib` and `cc_toolchain.static_runtime_lib` depsets by using a lambda:
```
args.add_all(
    cc_toolchain.dynamic_runtime_lib(feature_configuration = feature_configuration),
    map_each = lambda x: get_lib_name(x, for_windows = toolchain.os.startswith("windows)),
    format_each = "-ldylib=%s",
)
```

However it looks like such usage of lambdas is not allowed:
```
Error in add_all: to avoid unintended retention of analysis data structures,
the map_each function (declared at ...) must be declared by a top-level def statement
```

So instead of `get_lib_name` we now have `get_lib_name_default` and `get_lib_name_for_windows`.