Re: [tip: x86/asm] x86/asm: Make ASM_CALL_CONSTRAINT conditional on frame pointers

From: Josh Poimboeuf
Date: Mon Mar 03 2025 - 17:48:07 EST


On Mon, Mar 03, 2025 at 02:45:50PM -0800, Josh Poimboeuf wrote:
> On Mon, Mar 03, 2025 at 02:31:50PM -0800, H. Peter Anvin wrote:
> > >+#ifdef CONFIG_UNWINDER_FRAME_POINTER
> > > #define ASM_CALL_CONSTRAINT "r" (__builtin_frame_address(0))
> > >+#else
> > >+#define ASM_CALL_CONSTRAINT
> > >+#endif
> > >
> > > #endif /* __ASSEMBLY__ */
> > >
> >
> > Wait, why was this changed? I actually tested this form at least once
> > and found that it didn't work under all circumstances...
>
> Do you have any more details about where this didn't work? I tested
> with several configs and it seems to work fine. Objtool will complain
> if it doesn't work.
>
> See here for the justification (the previous version was producing crap
> code in Clang):

Gah, that link doesn't work because I forgot to cc lkml.

Here's the tip bot link:

https://lore.kernel.org/all/174099976253.10177.12542657892256193630.tip-bot2@tip-bot2/

--
Josh