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

Commit 4c40141a authored by Dan Albert's avatar Dan Albert
Browse files

Fix sanitizer choice for global vs module.

The sanitizer chosen by the environment (either by SANITIZE_TARGET or
SANITIZE_HOST) should be chosen over the one specified by the module.

Bug: http://b/23330588
Change-Id: I835b7d76e071fc0db2f859f98dfb9d7ff76af245
parent b3c585d7
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -4,33 +4,33 @@

my_sanitize := $(strip $(LOCAL_SANITIZE))

# Don't apply sanitizers to NDK code.
ifdef LOCAL_SDK_VERSION
  my_sanitize := never
endif

# Configure SANITIZE_HOST / SANITIZE_TARGET.
ifeq ($(my_sanitize),)
# SANITIZE_HOST is only in effect if the module is already using clang (host
# modules that haven't set `LOCAL_CLANG := false` and device modules that
# have set `LOCAL_CLANG := true`.
my_global_sanitize :=
ifeq ($(my_clang),true)
  ifdef LOCAL_IS_HOST_MODULE
    my_sanitize := $(strip $(SANITIZE_HOST))
    my_global_sanitize := $(strip $(SANITIZE_HOST))

    # SANITIZE_HOST=true is a deprecated way to say SANITIZE_HOST=address.
    my_global_sanitize := $(subst true,address,$(my_global_sanitize))
  else
    my_sanitize := $(strip $(SANITIZE_TARGET))
    my_global_sanitize := $(strip $(SANITIZE_TARGET))
  endif
endif

  # SANITIZE_HOST=true is a deprecated way to say SANITIZE_HOST=address.
  ifeq ($(my_sanitize),true)
    my_sanitize := address
# The sanitizer specified by the environment wins over the module.
ifneq ($(my_global_sanitize),)
  my_sanitize := $(my_global_sanitize)
endif

  # SANITIZE_HOST is only in effect if the module is already using clang (host
  # modules that haven't set `LOCAL_CLANG := false` and device modules that
  # have set `LOCAL_CLANG := true`.
  ifneq ($(my_clang),true)
# Don't apply sanitizers to NDK code.
ifdef LOCAL_SDK_VERSION
  my_sanitize :=
endif
endif

ifeq ($(my_sanitize),never)
# Never always wins.
ifeq ($(LOCAL_SANITIZE),never)
  my_sanitize :=
endif