Use the .cfi variant of a static library where needed.
This CL repoints static dependencies to their .cfi variants for CFI enabled targets. It also disables CFI for host targets because the version of ar intended for hosts does not have plugin support (which CFI requires). Bug: 67507323 Test: m -j40 Change-Id: Id11afd0c8765469858f406aace2a192afff6d042
This commit is contained in:
@@ -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
|
||||
###########################################################
|
||||
|
@@ -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),)
|
||||
|
Reference in New Issue
Block a user