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

Commit 828d46fb authored by Yo Chiang's avatar Yo Chiang
Browse files

Bypass missing required module check on ASAN SANITIZE_TARGET build

ASAN SANITIZE_TARGET build may have missing dependencies due to
executables being skipped, thus bypass the required module check.
https://source.android.com/devices/tech/debug/asan#sanitize_target

Also streamline the bypassing logic.

Fix: 163802658
Test: TH
Test: lunch aosp_cf_x86_pasan-userdebug &&
  m SANITIZE_TARGET=address nothing
Change-Id: Ia43c942ce7eae718bf6fcd254307535e418a70e7
parent 2dcabab1
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -695,10 +695,23 @@ $(call select-bitness-of-target-host-required-modules,TARGET,HOST)
$(call select-bitness-of-target-host-required-modules,HOST,TARGET)
_nonexistent_required := $(sort $(_nonexistent_required))

check_missing_required_modules := true
ifneq (,$(filter true,$(ALLOW_MISSING_DEPENDENCIES) $(BUILD_BROKEN_MISSING_REQUIRED_MODULES)))
  check_missing_required_modules :=
endif # ALLOW_MISSING_DEPENDENCIES == true || BUILD_BROKEN_MISSING_REQUIRED_MODULES == true

# Some executables are skipped in ASAN SANITIZE_TARGET build, thus breaking their dependencies.
ifneq (,$(filter address,$(SANITIZE_TARGET)))
  check_missing_required_modules :=
endif # SANITIZE_TARGET has ASAN

# HOST OS darwin build is broken, disable this check for darwin for now.
# TODO(b/162102724): Remove this
ifeq (,$(filter $(HOST_OS),darwin))
ifeq (,$(filter true,$(ALLOW_MISSING_DEPENDENCIES) $(BUILD_BROKEN_MISSING_REQUIRED_MODULES)))
# TODO(b/162102724): Remove this when darwin host has no broken dependency.
ifneq (,$(filter $(HOST_OS),darwin))
  check_missing_required_modules :=
endif # HOST_OS == darwin

ifeq (true,$(check_missing_required_modules))
ifneq (,$(_nonexistent_required))
  $(warning Missing required dependencies:)
  $(foreach r_i,$(_nonexistent_required), \
@@ -708,8 +721,7 @@ ifneq (,$(_nonexistent_required))
  $(warning Set BUILD_BROKEN_MISSING_REQUIRED_MODULES := true to bypass this check if this is intentional)
  $(error Build failed)
endif # _nonexistent_required != empty
endif # ALLOW_MISSING_DEPENDENCIES != true && BUILD_BROKEN_MISSING_REQUIRED_MODULES != true
endif # HOST_OS != darwin
endif # check_missing_required_modules == true

define add-required-deps
$(1): | $(2)