Re: [clang] stack protector and f1f029c7bf

From: H. Peter Anvin
Date: Fri May 25 2018 - 17:06:41 EST


On 05/25/18 13:36, Nick Desaulniers wrote:
> On Fri, May 25, 2018 at 10:56 AM <hpa@xxxxxxxxx> wrote:
>> You need the extern inline in the .h file and the out-of-line .S file
> both.
>
> But the out-of-line .S file looks like:
>
> ...
> 10 ENTRY(native_save_fl)
>
> 11 pushf
>
> 12 pop %_ASM_AX
>
> 13 ret
>
> 14 ENDPROC(native_save_fl)
>
> 15 EXPORT_SYMBOL(native_save_fl)
> ...
>
> I don't see how you can specify to the linker from assembly source that
> this function should be treated as `extern inline`?
>

"extern inline" is a C directive. In the header file you should provide
the inlinable implementation (which is already there.) It means that "if
you don't want to inline this there is an external implementation
available."


> I assume you don't literally mean the C keywords `extern inline` but
> whatever the equivalent incantation is needed in terms of assembler
> directives (which I also don't know).
>
> I'm beginning to think that what you'd like to see cannot be expressed (at
> least via `extern inline`).
>