On Tue, Sep 27, 2022 at 3:35 PM Russell King (Oracle) <linux@xxxxxxxxxxxxxxx> wrote: > > On Tue, Sep 27, 2022 at 03:28:51PM -0700, Nick Desaulniers wrote: > > commit 1069c1dd20a3 ("ARM: 9231/1: Recover kretprobes return address for > > EABI stack unwinder") > > tickled a bug in clang's integrated assembler where the .save and .pad > > directives must have corresponding .fnstart directives. The integrated > > assembler is unaware that the compiler will be generating the .fnstart > > directive. > > Has it been confirmed that gcc does generate a .fnstart for naked > functions? >From what I can tell, the presence of __attribute__((naked)) makes no difference with regards to the emission of the .fnstart directive for GCC. One thing I did notice though: https://godbolt.org/z/Mv5GEobc8 GCC will emit .fnstart directives when -fasynchronous-unwind-tables is specified for C (omitting the directive otherwise), or regardless of -fasynchronous-unwind-tables/-fno-asynchronous-unwind-tables for C++. Clang will unconditionally emit .fnstart directives regardless of language mode. I don't see -fasynchronous-unwind-tables being specified under arch/arm/. But there are many instances of UNWIND(.fnstart) in various .S files under arch/arm/. https://sourceware.org/binutils/docs/as/ARM-Unwinding-Tutorial.html https://sourceware.org/binutils/docs/as/ARM-Directives.html#arm_005ffnstart > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! -- Thanks, ~Nick Desaulniers