Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c60a3fcf authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Separate lists of soong sanitize modules" am: 66b322cf

Original change: https://android-review.googlesource.com/c/platform/build/+/1385289

Change-Id: Id4c8a525883346ac0394c9e26fb53ce708513867
parents 2d4a1e47 66b322cf
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -77,6 +77,20 @@ LOCAL_SYSTEM_EXT_MODULE := true
endif
_path :=

ifeq ($(LOCAL_HOST_MODULE),true)
my_image_variant := host
else ifeq ($(LOCAL_VENDOR_MODULE),true)
my_image_variant := vendor
else ifeq ($(LOCAL_OEM_MODULE),true)
my_image_variant := vendor
else ifeq ($(LOCAL_ODM_MODULE),true)
my_image_variant := vendor
else ifeq ($(LOCAL_PRODUCT_MODULE),true)
my_image_variant := product
else
my_image_variant := core
endif

# TODO(b/135957588) Remove following workaround
# LOCAL_PRODUCT_SERVICES_MODULE to LOCAL_PRODUCT_MODULE for all Android.mk
ifndef LOCAL_PRODUCT_MODULE
+28 −25
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ my_ndk_sysroot_include :=
my_ndk_sysroot_lib :=
my_api_level := 10000

my_arch := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)

ifneq ($(LOCAL_SDK_VERSION),)
  ifdef LOCAL_IS_HOST_MODULE
    $(error $(LOCAL_PATH): LOCAL_SDK_VERSION cannot be used in host module)
@@ -110,7 +112,6 @@ ifneq ($(LOCAL_SDK_VERSION),)
  # Make sure we've built the NDK.
  my_additional_dependencies += $(SOONG_OUT_DIR)/ndk_base.timestamp

  my_arch := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
  ifneq (,$(filter arm64 x86_64,$(my_arch)))
    my_min_sdk_version := 21
  else
@@ -1060,37 +1061,39 @@ asm_objects += $(asm_objects_asm)
endif

###################################################################
## When compiling a CFI enabled target, use the .cfi variant of any
## static dependencies (where they exist).
## Convert to sanitized names where they exist.
## These lists come from sanitizerStaticLibsMap; see
## build/soong/cc/sanitize.go
##
## $(1): list of static dependencies
## $(2): name of sanitizer (e.g. cfi, hwasan)
##################################################################
define use_soong_cfi_static_libraries
  $(foreach l,$(1),$(if $(filter $(l),$(SOONG_CFI_STATIC_LIBRARIES)),\
      $(l).cfi,$(l)))
define use_soong_sanitized_static_libraries
  $(foreach lib,$(1),$(if $(filter $(lib),\
      $(SOONG_$(2)_$(my_image_variant)_$(my_arch)_STATIC_LIBRARIES)),\
      $(lib).$(2),$(lib)))
endef

###################################################################
## When compiling a CFI enabled target, use the .cfi variant of any
## static dependencies (where they exist).
##################################################################
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

ifneq ($(LOCAL_USE_VNDK),)
  my_soong_hwasan_static_libraries := $(SOONG_HWASAN_VENDOR_STATIC_LIBRARIES)
else
  my_soong_hwasan_static_libraries = $(SOONG_HWASAN_STATIC_LIBRARIES)
  my_whole_static_libraries := $(call use_soong_sanitized_static_libraries,\
    $(my_whole_static_libraries),cfi)
  my_static_libraries := $(call use_soong_sanitized_static_libraries,\
    $(my_static_libraries),cfi)
endif

define use_soong_hwasan_static_libraries
  $(foreach l,$(1),$(if $(filter $(l),$(my_soong_hwasan_static_libraries)),\
      $(l).hwasan,$(l)))
endef

###################################################################
## When compiling a hwasan enabled target, use the .hwasan variant
## of any static dependencies (where they exist).
##################################################################
ifneq ($(filter hwaddress,$(my_sanitize)),)
  my_whole_static_libraries := $(call use_soong_hwasan_static_libraries,\
    $(my_whole_static_libraries))
  my_static_libraries := $(call use_soong_hwasan_static_libraries,\
    $(my_static_libraries))
  my_whole_static_libraries := $(call use_soong_sanitized_static_libraries,\
    $(my_whole_static_libraries),hwasan)
  my_static_libraries := $(call use_soong_sanitized_static_libraries,\
    $(my_static_libraries),hwasan)
endif

###########################################################