[Bug target/93654] New: Inappropriate "- -fcf-protection and -mindirect-branch=thunk are incompatible on x86_64" restriction
andrew.cooper3 at citrix dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 10 17:14:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
Bug ID: 93654
Summary: Inappropriate "- -fcf-protection and
-mindirect-branch=thunk are incompatible on x86_64"
restriction
Product: gcc
Version: 9.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: andrew.cooper3 at citrix dot com
Target Milestone: ---
Bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87412 prohibited the use of
-fcf-protection and -mindirect-branch=thunk in combination.
However, it also breaks kernels which use -mindirect-branch=thunk-extern
When retpoline protections were developed, I specifically requested
thunk-extern to exist for kernels which provide their own, so that it can be
made compatible with CET.
A kernel which provides its own thunks will boot-time modify them to be
appropriate for the system, and may not be a retpoline gadget. (They may be
lfence; jmp *%reg which is recommended on AMD, or just jmp *%reg with IBRS)
-mindirect-branch=thunk-extern specifically should be permitted with
-fcf-protection, because this *was* the plan to make a single binary capable of
using CET on applicable hardware, yet being safe to Spectre v2 on older
hardware.
More information about the Gcc-bugs
mailing list