Really unbundle libcrypto and libssl.
1. If built with the NDK, they should link against the NDK libdl and libz.
2. Upgrade to NDK version 5, because NDKr4 lacks some functions in
libdl.
Change-Id: I080d102d224496c63060c58a08b1dfd1de05978c
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 2a55189..7549ef9 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -50,6 +50,10 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libssl_static_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libcrypto_static_intermediates)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/crypto/Android.mk b/crypto/Android.mk
index d6ff574..2bce944 100644
--- a/crypto/Android.mk
+++ b/crypto/Android.mk
@@ -484,24 +484,22 @@
#######################################
# target static library
include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
endif
-include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_CFLAGS += $(local_c_flags)
LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
ifeq ($(TARGET_ARCH),arm)
LOCAL_SRC_FILES += $(arm_src_files)
LOCAL_CFLAGS += $(arm_cflags)
else
LOCAL_SRC_FILES += $(non_arm_src_files)
endif
-LOCAL_SHARED_LIBRARIES += libdl
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libcrypto_static
include $(BUILD_STATIC_LIBRARY)
@@ -509,24 +507,26 @@
#######################################
# target shared library
include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+# Use the NDK prebuilt libz and libdl.
+LOCAL_LDFLAGS += -lz -ldl
+else
+LOCAL_SHARED_LIBRARIES += libz libdl
endif
-include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_CFLAGS += $(local_c_flags)
LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
ifeq ($(TARGET_ARCH),arm)
LOCAL_SRC_FILES += $(arm_src_files)
LOCAL_CFLAGS += $(arm_cflags)
else
LOCAL_SRC_FILES += $(non_arm_src_files)
endif
-LOCAL_SHARED_LIBRARIES += libdl
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libcrypto
include $(BUILD_SHARED_LIBRARY)
diff --git a/patches/crypto_Android.mk b/patches/crypto_Android.mk
index d6ff574..2bce944 100644
--- a/patches/crypto_Android.mk
+++ b/patches/crypto_Android.mk
@@ -484,24 +484,22 @@
#######################################
# target static library
include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
endif
-include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_CFLAGS += $(local_c_flags)
LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
ifeq ($(TARGET_ARCH),arm)
LOCAL_SRC_FILES += $(arm_src_files)
LOCAL_CFLAGS += $(arm_cflags)
else
LOCAL_SRC_FILES += $(non_arm_src_files)
endif
-LOCAL_SHARED_LIBRARIES += libdl
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libcrypto_static
include $(BUILD_STATIC_LIBRARY)
@@ -509,24 +507,26 @@
#######################################
# target shared library
include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+# Use the NDK prebuilt libz and libdl.
+LOCAL_LDFLAGS += -lz -ldl
+else
+LOCAL_SHARED_LIBRARIES += libz libdl
endif
-include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_CFLAGS += $(local_c_flags)
LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
ifeq ($(TARGET_ARCH),arm)
LOCAL_SRC_FILES += $(arm_src_files)
LOCAL_CFLAGS += $(arm_cflags)
else
LOCAL_SRC_FILES += $(non_arm_src_files)
endif
-LOCAL_SHARED_LIBRARIES += libdl
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libcrypto
include $(BUILD_SHARED_LIBRARY)
diff --git a/patches/ssl_Android.mk b/patches/ssl_Android.mk
index 8b75335..487aabb 100644
--- a/patches/ssl_Android.mk
+++ b/patches/ssl_Android.mk
@@ -47,12 +47,12 @@
#######################################
# target static library
include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_MODULE_TAGS := optional
@@ -62,12 +62,12 @@
#######################################
# target shared library
include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_SHARED_LIBRARIES += libcrypto
diff --git a/ssl/Android.mk b/ssl/Android.mk
index 8b75335..487aabb 100644
--- a/ssl/Android.mk
+++ b/ssl/Android.mk
@@ -47,12 +47,12 @@
#######################################
# target static library
include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_MODULE_TAGS := optional
@@ -62,12 +62,12 @@
#######################################
# target shared library
include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_SHARED_LIBRARIES += libcrypto