Re: [PATCH v23 6/9] x86/entry: Introduce ENDBR macro

From: Peter Zijlstra
Date: Tue Mar 16 2021 - 16:17:00 EST


On Tue, Mar 16, 2021 at 01:05:30PM -0700, Yu, Yu-cheng wrote:
> On 3/16/2021 12:57 PM, Peter Zijlstra wrote:
> > On Tue, Mar 16, 2021 at 10:12:39AM -0700, Yu, Yu-cheng wrote:
> > > Alternatively, there is another compiler-defined macro _CET_ENDBR that can
> > > be used. We can put the following in calling.h:
> > >
> > > #ifdef __CET__
> > > #include <cet.h>
> > > #else
> > > #define _CET_ENDBR
> > > #endif
> > >
> > > and then use _CET_ENDBR in other files. How is that?
> > >
> > > In the future, in case we have kernel-mode IBT, ENDBR macros are also needed
> > > for other assembly files.
> >
> > Can we please call it IBT_ENDBR or just ENDBR. CET is a horrible name,
> > seeing how it is not specific.
> >
>
> _CET_ENDBR is from the compiler and we cannot change it. We can do:
>
> #define ENDBR _CET_ENDBR
>
> How is that?

Do we really want to include compiler headers? AFAICT it's not a
built-in. Also what about clang?

This thing seems trivial enough to build our own, it's a single damn
instruction. That also means we don't have to worry about changes to
header files we don't control.