Re: [PATCH 5/7] x86: Insert endbr32/endbr64 to vDSO

From: H.J. Lu
Date: Thu Jun 07 2018 - 20:31:43 EST


On Thu, Jun 7, 2018 at 4:00 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> On Thu, Jun 7, 2018 at 3:03 PM H.J. Lu <hjl.tools@xxxxxxxxx> wrote:
>>
>> On Thu, Jun 7, 2018 at 1:50 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
>> > On Thu, Jun 7, 2018 at 7:42 AM Yu-cheng Yu <yu-cheng.yu@xxxxxxxxx> wrote:
>> >>
>> >> From: "H.J. Lu" <hjl.tools@xxxxxxxxx>
>> >>
>> >> When Intel indirect branch tracking is enabled, functions in vDSO which
>> >> may be called indirectly should have endbr32 or endbr64 as the first
>> >> instruction. We try to compile vDSO with -fcf-protection=branch -mibt
>> >> if possible. Otherwise, we insert endbr32 or endbr64 by hand to assembly
>> >> codes generated by the compiler.
>> >
>> > Wow, that's... a genuine abomination. Do we really need to support
>> > CET on kernels built with old toolchains?
>> >
>>
>> Yes. GCC 7 should be able to build CET kernel.
>>
>
> Why? Presumably people running distros that use CET are going to have
> kernels build with a CET-supporting compiler.
>

Good point. It was needed before GCC 8 was released. We can drop
arch/x86/entry/vdso/endbr.sh now.

--
H.J.