Flag: --incompatible_provide_cc_toolchain_info_from_cc_toolchain_suite
Available since: 0.20
Will be flipped in: 0.21
Enclosing tracking issue: #6072
In the past, cc_toolchain was selected during the configuration construction, and we want to move it the proper analysis phase. For that we need to change which rule provides CcToolchainInfo. Before it was cc_toolchain, now it will be cc_toolchain_suite. This will be mostly invisible change, things like ctx.fragments.cpp.cc_toolchain configuration field, cc_toolchain_alias, and find_cpp_toolchain will keep working transparently.
To refresh your understanding of how C++ specific toolchain selection works, see the docs.
Observable changes:
- Label of the resolved target aliased by
//tools/cpp:current_cc_toolchain will be different
rule.kind will be cc_toolchain_suite, not cc_toolchain.
Migration notes:
Unfortunately there is no domain-independent solution.
Important note:
C++ rules will migrate to platforms in 2019. When that happens, cc_toolchain_suite will be removed, and generic toolchain selection mechanism will be used. When we get there, we will again provide CcToolchainInfo from cc_toolchain. Therefore we advice you to make your code work with both cc_toolchain and cc_toolchain_suite, to save you from the future migration.
Flag:
--incompatible_provide_cc_toolchain_info_from_cc_toolchain_suiteAvailable since: 0.20
Will be flipped in: 0.21
Enclosing tracking issue: #6072
In the past, cc_toolchain was selected during the configuration construction, and we want to move it the proper analysis phase. For that we need to change which rule provides
CcToolchainInfo. Before it wascc_toolchain, now it will becc_toolchain_suite. This will be mostly invisible change, things likectx.fragments.cpp.cc_toolchainconfiguration field,cc_toolchain_alias, andfind_cpp_toolchainwill keep working transparently.To refresh your understanding of how C++ specific toolchain selection works, see the docs.
Observable changes:
//tools/cpp:current_cc_toolchainwill be differentrule.kindwill becc_toolchain_suite, notcc_toolchain.Migration notes:
Unfortunately there is no domain-independent solution.
Important note:
C++ rules will migrate to platforms in 2019. When that happens,
cc_toolchain_suitewill be removed, and generic toolchain selection mechanism will be used. When we get there, we will again provideCcToolchainInfofromcc_toolchain. Therefore we advice you to make your code work with bothcc_toolchainandcc_toolchain_suite, to save you from the future migration.