[PATCH v3] ARM: document arm_setup_stack() pitfalls
Sascha Hauer
sha at pengutronix.de
Sat Oct 2 01:54:27 PDT 2021
On Fri, Sep 17, 2021 at 02:11:52PM +0200, Ahmad Fatoum wrote:
> Many arm32 board entry points use arm_setup_stack() to set up
> the stack from C code. This necessitates using __naked, which
> probably has been our most frequent cause of misscompiled C code.
>
> GCC is quite clear that:
>
> Only basic asm statements can safely be included in naked functions
> While using extended asm or a mixture of basic asm and C code may
> appear to work, they cannot be depended upon to work reliably and
> are not supported.
>
> But some boards use it anyway, because it's nice to avoid writing
> assembly. Reading generated assembly to spot compiler miscompilation
> isn't that nice though, so add some documentation, comments
> and compiler diagnostics to hopefully reduce future porting effort.
>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> v2 -> v3:
> - fix typos (Uwe)
> - use better matching CONFIG_CPU_64 instead of CONFIG_CPU_V8
> - clarify 'bad' stack manipulation
> v1 -> v2:
> - fix commit message title
Applied, thanks
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list