This fixes a problem with -O0 SMP builds on ARM visible as kernel data aborts whenever the idle thread executes. The idle thread receives no stack pointer. At -O2, this is fine as the wfi() call is inlined and stack operations in idle_thread are optimized out. At -O0, the stack operations remain and wfi() is not inlined, resulting in stack accesses in the idle thread that cause data aborts. Forcing -O2 behaviour was deemed the simplest solution for now. Giving the idle thread a stack would have had larger verification ramifications for what is now a fairly uncommon use case. |
||
|---|---|---|
| .. | ||
| armv6/armv | ||
| armv7-a/armv | ||
| armv8-a | ||
| armv7ve | ||