SANITIZE_TARGET: allow undef symbols in non-sanitized shared libraries.

These symbols are defined in the ASan runtime library, which is always
present at runtime.

Bug:21785137

Change-Id: Ib8418c66323fd4cdfdc05548048f32380cb84ee5
This commit is contained in:
Evgenii Stepanov 2015-06-25 16:38:25 -07:00
parent 8f180b904f
commit 5adfcb166e

View file

@ -34,6 +34,20 @@ ifeq ($(my_sanitize),never)
my_sanitize := my_sanitize :=
endif endif
# Undefined symbols can occur if a non-sanitized library links
# sanitized static libraries. That's OK, because the executable
# always depends on the ASan runtime library, which defines these
# symbols.
ifneq ($(strip $(SANITIZE_TARGET)),)
ifndef LOCAL_IS_HOST_MODULE
ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES)
ifeq ($(my_sanitize),)
my_allow_undefined_symbols := true
endif
endif
endif
endif
# Sanitizers can only be used with clang. # Sanitizers can only be used with clang.
ifneq ($(my_clang),true) ifneq ($(my_clang),true)
ifneq ($(my_sanitize),) ifneq ($(my_sanitize),)