[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <38f21c66-fa34-3a77-33bc-d15065c15af9@zytor.com>
Date: Fri, 25 May 2018 14:06:28 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
Cc: Alistair Strachan <astrachan@...gle.com>,
Manoj Gupta <manojgupta@...gle.com>,
Matthias Kaehlcke <mka@...gle.com>,
Greg Hackmann <ghackmann@...gle.com>, sedat.dilek@...il.com,
tstellar@...hat.com, LKML <linux-kernel@...r.kernel.org>,
Kees Cook <keescook@...gle.com>
Subject: Re: [clang] stack protector and f1f029c7bf
On 05/25/18 13:36, Nick Desaulniers wrote:
> On Fri, May 25, 2018 at 10:56 AM <hpa@...or.com> 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`).
>
Powered by blists - more mailing lists