Skip to content

rules_rust_prost internal crate_universe does not inherit exec_properties, causing local execution of Linux ELF build scripts on macOS during RBE. #3893

@santhoshct

Description

@santhoshct

When cross-compiling from macOS to Linux using RBE, the CargoBuildScriptRun actions for our main workspace crates (@crates//) correctly dispatch to our remote Linux workers. However, the CargoBuildScriptRun actions for rules_rust_prost's internal tools (e.g., @rules_rust++i2+rrc__*) attempt to execute locally on macOS, despite being compiled as Linux ELF binaries by the resolved toolchain.

Both the working main crates and the broken prost crates share the exact same config hash, meaning toolchain resolution is correct. The issue appears to be that the internal crate_universe instantiated by the rules_rust_prost module extension does not inherit the global execution platform constraints or exec_properties (unlike our user-controlled render_config).

Questions:

Is there a way to pass a render_config or custom exec_properties to the internal crate_universe used by rules_rust_prost?

Is rules_rust_prost hardcoding tags = ["local"] or stripping remote execution properties during its bootstrapping phase?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions