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: Ia9ed73cb9739617a7c928b939cb4b3a6d77723b7
This commit is contained in:
Ramon Pantin 2020-03-02 17:57:57 -08:00
parent 4052265b8b
commit 2bd0afe05a

View File

@ -843,7 +843,8 @@ export LTO_CFLAGS DISABLE_LTO
endif
ifdef CONFIG_CFI_CLANG
cfi-clang-flags += -fsanitize=cfi -fno-sanitize-cfi-canonical-jump-tables
cfi-clang-flags += -fsanitize=cfi -fno-sanitize-cfi-canonical-jump-tables \
-fno-sanitize-blacklist
DISABLE_CFI_CLANG := -fno-sanitize=cfi
ifdef CONFIG_MODULES
cfi-clang-flags += -fsanitize-cfi-cross-dso