Skip to content

Toolchain transitions need to be more flexible #22

@aaronmondal

Description

@aaronmondal

We already use extensive toolchain transitions to handle our various compilation_modes. It looks like this is not enough anymore.

Our current approach is limited in the following ways:

  • We cannot create dynamic libraries in the bootstrap toolchain as linking is not supported there. This means that we can't provide builds for dynamic libc++ and friends.
  • We cannot use ll_binary tools in genrules since that requires the ll_binary to be in exec configuration. We need some way to transition from the compilation_mode-specific target configurations to an exec configuration. This is not supported at the moment.

We need to be careful that opening the toolchains up to handle such cases only leads to excessive rebuilds when absolutely necessary. Otherwise users may end up building LLVM several times just to get a trivial ll_binary working in a genrule. We may also need better platform support to tackle this elegantly.

Things work at the moment because we can fall back to rules_cc for exec tools. This is a very undesirable limitation of the current implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions