rust-embedded / rust-embedded/cortex-m
Enable stack overflow protection by default
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1k
- Forks
- 202
- Avg merge
- 6d 2h
- Merged PRs (30d)
- 2
Description
Not providing this is unsound, so we should make sure this is on by default before 1.0. This was already implemented in the past, but was removed with the switch to LLD (if I'm not mistaken).
@japaric has been working on flip-lld, a small wrapper that invokes LLD twice to place the stack below the static data sections. An older description of this approach is described in this blog article.
(unfortunately, experiments with doing it with one linker invocation have so far not worked out, but according to https://github.com/rust-embedded/cortex-m-rt/issues/34#issuecomment-336704755 there's another way to do it with a single linker invocation, might be worth checking out)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing stack overflow protection history, the switch to LLD, and japaric's flip-lld wrapper and linked blog article. Compare the two-linker and single-linker approaches described in the issue; done means stack overflow protection is enabled by default before 1.0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100