Remove legacy crosstool fields
For this to happen we need to:
Create a CcToolchainProvider Skylark API to replace existing ctx.fragments.cpp.compiler_options() and ctx.fragments.cpp.linker_options() etc.
Done in Implement Skylark API for C++ toolchain/feature configuration #4571
Prepare migration tooling (elaborated [here]).(https://docs.google.com/document/d/1uv4c1zag6KvdI31qdx8C6jiTognXPQrxgsUpVefm9fM/edit# ).
Add incompatible flags to help Bazel users migrate.
Migrate all crosstools to features.
Remove legacy fields from crosstools:
all supports_* fields
static_runtimes_filegroup
dynamic_runtimes_filegroup
compiler_flag
optional_compiler_flag
cxx_flag
optional_cxx_flag
unfiltered_cxx_flag
optional_unfiltered_cxx_flag
linker_flag
optional_linker_flag
dynamic_library_linker_flag
optional_dynamic_library_linker_flag
test_only_linker_flag
objcopy_embed_flag
ld_embed_flag
ar_flag
ar_thin_archives_flag
gcc_plugin_compiler_flag
compilation_mode_flags
lipo_mode_flags
linking_mode_flags
gcc_plugin_header_directory
mao_plugin_header_directory
tool_path
Remove legacy crosstool fields
For this to happen we need to:
ctx.fragments.cpp.compiler_options()andctx.fragments.cpp.linker_options()etc.Done in Implement Skylark API for C++ toolchain/feature configuration #4571