Skip to content

Ability to pass custom toolchains per-architecture #2560

@git-bruh

Description

@git-bruh

I have a use-case where my cluster has one x86_64 machine, and one aarch64 machine, so I came up with the following config where the archive is created using icecc-create-env:

[dist]
scheduler_url = "..."

[[dist.toolchains]]
type = "path_override"
compiler_executable = "/usr/bin/cc"
archive = "/path/to/toolchain/2f1c55dd08382282fbce3a5807e59436.tar.gz"
archive_compiler_executable = "/usr/bin/gcc"

[[dist.toolchains]]
type = "path_override"
compiler_executable = "/usr/bin/c++"
archive = "/path/to/toolchain/2f1c55dd08382282fbce3a5807e59436.tar.gz"
archive_compiler_executable = "/usr/bin/g++"

[dist.auth]
type = "token"
token = "..."

The archive contains a cross-compiler built for aarch64, so distributing jobs from the x86_64 machine to the other machine works fine. However when the x86_64 machine runs it's own local jobs, it fails because it tries to re-use the same toolchain which was built for a different architecture.

Ideally sccache should support something like ICECC_VERSION (eg. ICECC_VERSION=aarch64:/path/to/toolchain/2f1c55dd08382282fbce3a5807e59436.tar.gz) to specify toolchains per-architecture.

Would something like this be considered under the project's scope? If so, would be happy to work on it :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions