# Which gccs support new kernel option CONFIG_RETPOLINE?

## NightMonkey

```
Avoid speculative indirect branches in kernel (RETPOLINE) [Y/n/?] (NEW) ?

                                                                  

CONFIG_RETPOLINE:                                                        

                                                                                   

Compile kernel with the retpoline compiler options to guard against

kernel-to-user data leaks by avoiding speculative indirect                                                                                        

branches. Requires a compiler with -mindirect-branch=thunk-extern                                                                                 

support for full protection. The kernel may run slower.                                                                                           

                                                                                                                                                  

Without compiler support, at least indirect branches in assembler        

code are eliminated. Since this includes the syscall entry path,                                                                        

it is not entirely pointless.                                                                                                          

                                                                                                                                        

Symbol: RETPOLINE [=y]                                                                                                  

Type  : boolean                                                                                                                                   

Prompt: Avoid speculative indirect branches in kernel                                                              

  Location:                                                                                                                                       

    -> Processor type and features                                                                                 

  Defined at arch/x86/Kconfig:432                                 
```

Thanks!  :Very Happy: 

----------

## mike155

Any recent GCC (5, 6, 7) compiler will compile your kernel if you set CONFIG_RETPOLINE=Y.

But only "indirect branches in assembler code" will be eliminated.

To get full protection, you'll need a GCC compiler with -mindirect-branch=thunk-extern support. So far no such compiler has been released.

GCC 7.3.0 will probably be released next week. It will be the first GCC compiler to support -mindirect-branch=thunk-extern.

If you're lion-hearted, you could also try the latest GCC 7 or 8 snapshots from GCC git server. They already contain support for -mindirect-branch=thunk-extern.

----------

