diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-11-22 00:05:30 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-11-22 00:05:30 +0000 |
commit | 061fcfc2548a472ec38861edf2553fa98bf3fbc4 (patch) | |
tree | e14abc4040a87cd239fb43974b284c5f2e7739d6 | |
parent | 9f686938da37f3b918699d8752321ff41b473ad7 (diff) | |
parent | 96a130bdafa3f143f15257455f4c6aaa56155351 (diff) | |
download | build-061fcfc2548a472ec38861edf2553fa98bf3fbc4.tar.gz |
Merge "Use the .cfi variant of a static library where needed."
-rw-r--r-- | core/binary.mk | 16 | ||||
-rw-r--r-- | core/config_sanitizers.mk | 6 |
2 files changed, 22 insertions, 0 deletions
diff --git a/core/binary.mk b/core/binary.mk index 36d8a543d0..e54edbec86 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1330,6 +1330,22 @@ $(call track-src-file-obj,$(asm_sources_asm),$(asm_objects_asm)) asm_objects += $(asm_objects_asm) endif +################################################################### +## When compiling a CFI enabled target, use the .cfi variant of any +## static dependencies (where they exist). +################################################################## +define use_soong_cfi_static_libraries + $(foreach l,$(1),$(if $(filter $(l),$(SOONG_CFI_STATIC_LIBRARIES)),\ + $(l).cfi,$(l))) +endef + +ifneq ($(filter cfi,$(my_sanitize)),) + my_whole_static_libraries := $(call use_soong_cfi_static_libraries,\ + $(my_whole_static_libraries)) + my_static_libraries := $(call use_soong_cfi_static_libraries,\ + $(my_static_libraries)) +endif + ########################################################### ## When compiling against the VNDK, use LL-NDK libraries ########################################################### diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index 8bd92486e0..94151430f9 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -132,6 +132,12 @@ ifneq ($(filter mips mips64,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)),) my_sanitize_diag := $(filter-out cfi,$(my_sanitize_diag)) endif +# Disable CFI for host targets +ifdef LOCAL_IS_HOST_MODULE + my_sanitize := $(filter-out cfi,$(my_sanitize)) + my_sanitize_diag := $(filter-out cfi,$(my_sanitize_diag)) +endif + # Support for local sanitize blacklist paths. ifneq ($(my_sanitize)$(my_global_sanitize),) ifneq ($(LOCAL_SANITIZE_BLACKLIST),) |