ANDROID: kbuild: disable GCOV with CFI

With GCOV enabled, LLVM generates calls to compiler-generated
__llvm_gcov_* functions, but doesn't add them to the CFI jump
table, which trips indirect call checking. Work around the issue
by disabling CFI when GCOV_KERNEL is enabled.

Bug: 169124292
Change-Id: Ifd60cd9eda2bcdd86838ac5ce41bb0dbc00d602f
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
(cherry picked from commit 93a4197bc23a4a6967ff0592d07f3cf4cd69b1d6)
This commit is contained in:
Sami Tolvanen
2020-10-12 14:17:56 -07:00
committed by Matthias Maennich
parent 39133635c5
commit e675b8a59a

View File

@@ -605,6 +605,7 @@ endchoice
config CFI_CLANG config CFI_CLANG
bool "Use Clang's Control Flow Integrity (CFI)" bool "Use Clang's Control Flow Integrity (CFI)"
depends on LTO_CLANG && KALLSYMS depends on LTO_CLANG && KALLSYMS
depends on !GCOV_KERNEL
help help
This option enables Clang's Control Flow Integrity (CFI), which adds This option enables Clang's Control Flow Integrity (CFI), which adds
runtime checking for indirect function calls. runtime checking for indirect function calls.