EXPERIMENTAL: Add libcompiler-rt-extras.a to device builds.

Change-Id: I463217aef573a28069469514ad94cd85a7f38bea
diff --git a/core/binary.mk b/core/binary.mk
index 04ac90b..87a5b5f 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -132,6 +132,11 @@
   LOCAL_STATIC_LIBRARIES += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
 endif
 
+# Add in libcompiler-rt for all device builds
+ifndef LOCAL_IS_HOST_MODULE
+  LOCAL_STATIC_LIBRARIES += $(COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES)
+endif
+
 my_compiler_dependencies :=
 ifeq ($(strip $(LOCAL_CLANG)),true)
   LOCAL_CFLAGS += $(CLANG_CONFIG_EXTRA_CFLAGS)
diff --git a/core/llvm_config.mk b/core/llvm_config.mk
index 4145028..33cf6d1 100644
--- a/core/llvm_config.mk
+++ b/core/llvm_config.mk
@@ -71,3 +71,9 @@
 ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS := -Wl,-u,__asan_preinit
 ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES := libdl libasan_preload
 ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES := libasan
+
+# This allows us to use the superset of functionality that compiler-rt
+# provides to Clang (for supporting features like -ftrapv).
+ifneq ($(TARGET_ARCH),mips)
+COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES := libcompiler-rt-extras
+endif