Sanitizer build tweaks.

-Wl,-no-undefined is currently disabled for any SANITIZE_TARGET. Limit that to
the sanitizers with a runtime library (i.e. address, thread).

Re-enable the relocation packer for ASan. This has been fixed upstream a long
time ago.

Bug: 27729263
Change-Id: I566df6104de816223dc1c519d41a87629ce9c47c
This commit is contained in:
Evgenii Stepanov
2016-05-19 17:49:51 -07:00
parent 3d8ee8896b
commit 912b51f8ab

View File

@@ -55,17 +55,13 @@ endif
# sanitized static libraries. That's OK, because the executable # sanitized static libraries. That's OK, because the executable
# always depends on the ASan runtime library, which defines these # always depends on the ASan runtime library, which defines these
# symbols. # symbols.
ifneq ($(strip $(SANITIZE_TARGET)),) ifneq ($(filter address thread,$(strip $(SANITIZE_TARGET))),)
ifndef LOCAL_IS_HOST_MODULE ifndef LOCAL_IS_HOST_MODULE
ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES)
ifeq ($(my_sanitize),) ifeq ($(my_sanitize),)
my_allow_undefined_symbols := true my_allow_undefined_symbols := true
endif endif
endif endif
# Workaround for a bug in AddressSanitizer that breaks stack unwinding.
# https://code.google.com/p/address-sanitizer/issues/detail?id=387
# Revert when external/compiler-rt is updated past r236014.
LOCAL_PACK_MODULE_RELOCATIONS := false
endif endif
endif endif