blob: 48a1a8878035e66c1109ff9ae5c0cbd53a93f2c8 [file] [log] [blame]
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ramon Pantin <pantin@google.com>
Date: Mon, 2 Mar 2020 17:44:35 -0800
Subject: ANDROID: CC_FLAGS_CFI add -fno-sanitize-blacklist
Added the clang compiler option -fno-sanitize-blacklist to the
CC_FLAGS_CFI variable.
Without this flag, the make dependecy list files produced by clang,
have the cfi_blacklist.txt as their first dependency. The dependecy
lists are produced by the -Wp,-MD,filename option (for example:
-Wp,-MD,mm/.mmap.o.d). The dependency lists are processed by the
scripts/basic/fixdeps.c program, and are transformed into the .o.cmd
files (for example: mm/.mmap.o.cmd). That file is meant to have the
source code of the file listed in the source_* make variable (for
example: source_mm/mmap.o). Instead of that that variable refers
to the full pathname to the cfi_blacklist.txt file. Furthermore, the
deps_* make variable is not supposed to include the source code file
but it does include it.
The cfi_blacklist.txt file is not required by the use of CFI for the
kernel, use of the -fno-sanitize-blacklist causes the .o.cmd file
to have the correct values in its source_* and dep_* variables.
Signed-off-by: Ramon Pantin <pantin@google.com>
Bug: 150504710
Test: interactively
Change-Id: Iac39df3ab74e6d8753a7962925fab0c3854929e4
---
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -902,7 +902,8 @@ endif
ifdef CONFIG_CFI_CLANG
CC_FLAGS_CFI := -fsanitize=cfi \
- -fno-sanitize-cfi-canonical-jump-tables
+ -fno-sanitize-cfi-canonical-jump-tables \
+ -fno-sanitize-blacklist
ifdef CONFIG_MODULES
CC_FLAGS_CFI += -fsanitize-cfi-cross-dso