doc/wg/core/notes/core-notes-2021-03-19.md
static_init!() issue I had identified. In some cases, LLVM is
now smart enough to not stack allocate peripherals, then copy them into the
global, instead allocating directly into the memory of the global.
Unfortunately this does not seem to fix the issue on every board, for reasons
that are still somewhat unclear to me. In general, this "fix" relies on an
optimization that is not guaranteed to trigger, so we still will need to decide
whether the fix we had originally agreed on is worthwhile.map_or() vs map() debacle, and it would be good to add that as an item on #2429.cfg flags. There is a feature that adds much better
resolution, letting you base stuff off the exact architecture and features
available on a given chip. This PR adds that feature and lets us specify that
some of the asm in the cortex-m crates is only for certain versions of
arm-thumb. The downside, of course, is that its a new nightly feature.
Decision: are we okay with this? Am in support for 2 reasons. 1. This is really
just a change in the build system, so I see it as less risky. 2. There is
another PR which is a different implementation of the same thing that
accomplishes the same goal in a messier way. If everything else gets stabilized,
we could revert to the manual way, so this won't stand in the way of our path to
stable long term.