Do not sanitize host static libraries.
Sanitization currently makes these libraries reference symbols which
cannot be resolved at runtime without additional magic.
Disable this until we can find a fix. This currently makes signapk
fail with:
libconscrypt_openjdk_jni.so: undefined symbol: __asan_option_detect_stack_use_after_return
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:25)
at org.conscrypt.NativeCrypto.<clinit>(NativeCrypto.java:54)
at org.conscrypt.OpenSSLBIOInputStream.<init>(OpenSSLBIOInputStream.java:34)
at org.conscrypt.OpenSSLX509Certificate.fromX509PemInputStream(OpenSSLX509Certificate.java:119)
at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:220)
at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:216)
at org.conscrypt.OpenSSLX509CertificateFactory$Parser.generateItem(OpenSSLX509CertificateFactory.java:94)
at org.conscrypt.OpenSSLX509CertificateFactory.engineGenerateCertificate(OpenSSLX509CertificateFactory.java:272)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
at com.android.signapk.SignApk.readPublicKey(SignApk.java:161)
at com.android.signapk.SignApk.main(SignApk.java:933)
Bug: 26160319
Change-Id: I9f8d949bf571eb2511d42d472ecf23a5e8c03758
diff --git a/Android.mk b/Android.mk
index 7272c85..3e3ef2a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -59,6 +59,12 @@
# Windows and Macs both have problems with assembly files
LOCAL_CFLAGS_darwin += -DOPENSSL_NO_ASM
LOCAL_CFLAGS_windows += -DOPENSSL_NO_ASM
+# TODO: b/26097626. ASAN breaks use of this library in JVM.
+# Re-enable sanitization when the issue with making clients of this library
+# preload ASAN runtime is resolved. Without that, clients are getting runtime
+# errors due to unresoled ASAN symbols, such as
+# __asan_option_detect_stack_use_after_return.
+LOCAL_SANITIZE := never
include $(LOCAL_PATH)/crypto-sources.mk
include $(BUILD_HOST_STATIC_LIBRARY)
@@ -113,6 +119,12 @@
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/ssl-sources.mk
LOCAL_CFLAGS += -fvisibility=hidden -DBORINGSSL_SHARED_LIBRARY -DBORINGSSL_IMPLEMENTATION -DOPENSSL_SMALL -Wno-unused-parameter
LOCAL_CXX_STL := none
+# TODO: b/26097626. ASAN breaks use of this library in JVM.
+# Re-enable sanitization when the issue with making clients of this library
+# preload ASAN runtime is resolved. Without that, clients are getting runtime
+# errors due to unresoled ASAN symbols, such as
+# __asan_option_detect_stack_use_after_return.
+LOCAL_SANITIZE := never
include $(LOCAL_PATH)/ssl-sources.mk
include $(BUILD_HOST_STATIC_LIBRARY)