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.
For Tock, we use custom target specifications for each supported board. With the merging of rust-lang/rust#35021, when I set up https://github.com/rust-lang-nursery/compiler-builtins for Tock, it invoked
cc
instead ofarm-none-eabi-gcc
. I traced that decision back to this crate, where compiler selection logic depends on matching against a list of known targets.Unfortunately, our custom target causes the
TARGET
environment variable to be set to something likesam4l.json
, which is not a known target. However, we can look inside the specs file at thellvm-target
key to pull out the right target.The PR is a quick proof-of-concept that always tries to treat the
TARGET
as a specs file, but falls back to treating it as a well-known target string if the file doesn't exist. I think this is a reasonable approach to handle custom targets, but am open to any other ideas you may have.