Indirect branch tracking is a hardware security feature that verifies near
indirect call/jump instructions arrive at intended targets, which are
labeled by the compiler with ENDBR opcodes.  If such instructions reach
unlabeled locations, the processor raises control-protection faults.

Check the compiler is up-to-date at config time.

Signed-off-by: Yu-cheng Yu <[email protected]>
Reviewed-by: Kees Cook <[email protected]>
---
 arch/x86/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index cafa4a2c1d2d..5e157031bf82 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1963,6 +1963,7 @@ config X86_CET
        def_bool n
        depends on AS_WRUSS
        depends on ARCH_HAS_SHADOW_STACK
+       depends on $(cc-option,-fcf-protection)
        select ARCH_USES_HIGH_VMA_FLAGS
        select ARCH_MAYBE_MKWRITE
        select ARCH_USE_GNU_PROPERTY
-- 
2.21.0

Reply via email to