OSDN Git Service

Blacklist code for CFI.
authorVishwath Mohan <vishwath@google.com>
Tue, 14 Feb 2017 15:55:37 +0000 (07:55 -0800)
committerVishwath Mohan <vishwath@google.com>
Wed, 15 Feb 2017 20:48:05 +0000 (12:48 -0800)
Adds the -fsanitize-blacklist option for CFI, using the built in
blacklist at external/compiler-rt/lib/cfi/cfi_blacklist.txt.

Also refactors the CFI cflags and ldflags into ../soong/cc/makevars.go
to ensure they're consistent across Soong and make projects.

Bug: 30227045
Test: ENABLE_CFI=true m -j40 builds and boots.
Test: The blacklist prevents runtime errors that otherwise occur.
Change-Id: I0c2801ed459a3b9adeb37daff3ca212564801259

core/config_sanitizers.mk

index 57a7993..729ef48 100644 (file)
@@ -159,8 +159,8 @@ ifneq ($(filter cfi,$(my_sanitize)),)
   # LLVM is not set up to do this on a function basis, so force Thumb on the
   # entire module.
   LOCAL_ARM_MODE := thumb
-  my_cflags += -flto -fsanitize-cfi-cross-dso -fvisibility=default
-  my_ldflags += -flto -fsanitize-cfi-cross-dso -fsanitize=cfi -Wl,-plugin-opt,O1 -Wl,-export-dynamic-symbol=__cfi_check
+  my_cflags += $(CFI_EXTRA_CFLAGS)
+  my_ldflags += $(CFI_EXTRA_LDFLAGS)
   my_arflags += --plugin $(LLVM_PREBUILTS_PATH)/../lib64/LLVMgold.so
   # Workaround for b/33678192. CFI jumptables need Thumb2 codegen.  Revert when
   # Clang is updated past r290384.