Conversation
|
I’m hitting what looks like relvant issue while building ESP32-C6 firmware with platform_triples = [
"riscv32imac-unknown-none-elf",
"x86_64-unknown-linux-gnu",
]
This fails because FYI I also see leakage in the other direction: |
Member
Author
|
@pawelchcki does this PR fix the issue for you? It feels like the real problem may be crates enabling features in their deps unconditionally instead of conditioning on cfg-target - but hopefully this helps. We can land it if it does just need to rebase and add a regression test, etc. let me know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cargo resolver v2 keeps normal-dependency features separate from build-dependency features, but
rules_rspreviously resolved both dependency kinds into one externalrust_cratetarget. This change resolves target dependencies without build dependencies, seeds a second resolution overSUPPORTED_EXEC_TRIPLES, and generates either one target when both resolutions match or_targetand_exectargets selected by@rules_rust//cargo/settings:use_exec_features_enabledwhen they differ. It pinsrules_rustcommit7837073014b566291368027aa116cd03fe108049, which composes the build-script exec transition with the marker transition throughconfig.exec().and_then(...).The
build_exec_feature_splitfixture requirestarget_featurefrom a normal dependency andexec_featurefrom the same crate as a build dependency. The shared crate fails compilation if both features are enabled, so the fixture verifies that the target library and build script receive different feature sets.Validation used source-built Bazel commit
0878dd724149b73a731ab83859a55a65e9b438ed:@build_exec_feature_split//:_workspace_depspassed with 1,720 actions,//rs/private:allpassed 28/28 tests,cargo check --lockedpassed for the fixture, and Buildifier plusgit diff --checkpassed.Current scope: proc macros are unchanged, and
seed_exec_build_dependenciesunions features from all active target triples before resolving each exec triple. Exact target-specific build-script features require resolution keyed by both target triple and exec triple.