summaryrefslogtreecommitdiffstats
path: root/core/package_internal.mk
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2014-07-23 15:27:21 -0700
committerNarayan Kamath <narayan@google.com>2015-02-26 12:31:40 +0000
commit13e5965306212a9051772ff1d5bc3a88e5fb519a (patch)
treea7f9df0715cae66a22c1901522f520bd561e3b70 /core/package_internal.mk
parent876f45e73f938cdaa7cfc25c43822fc6b274f105 (diff)
downloadbuild-13e5965306212a9051772ff1d5bc3a88e5fb519a.zip
build-13e5965306212a9051772ff1d5bc3a88e5fb519a.tar.gz
build-13e5965306212a9051772ff1d5bc3a88e5fb519a.tar.bz2
Store native libs aligned to PAGE_SIZE
- Add a new flag to zipalign (-p) that page aligns shared libraries (zip entries ending with ".so") in the archive. - Add a new build variable LOCAL_PAGE_ALIGN_SHARED_LIBRARIES to turn on this behaviour in zipalign. - Add a new LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS to control zip behaviour. Bug: 8076853 Bug: 19330157 Co-Authored-By: Simon Baldwin <simonb@google.com> Co-Authored-By: Dimitry Ivanov <dimitry@google.com> Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
Diffstat (limited to 'core/package_internal.mk')
-rw-r--r--core/package_internal.mk12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 49a6d9b..f5e6c25 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -63,6 +63,14 @@ ifeq ($(LOCAL_MODULE_TAGS),)
LOCAL_MODULE_TAGS := optional
endif
+ifeq ($(LOCAL_PACKAGE_ALIGNMENT),)
+LOCAL_PACKAGE_ALIGNMENT := $(DEFAULT_PACKAGE_ALIGNMENT)
+endif
+
+ifeq ($(LOCAL_JNI_SHARED_LIBRARIES_PACKAGE_ALIGNMENT),)
+LOCAL_JNI_SHARED_LIBRARIES_PACKAGE_ALIGNMENT := $(DEFAULT_JNI_SHARED_LIBRARIES_PACKAGE_ALIGNMENT)
+endif
+
ifeq ($(filter tests, $(LOCAL_MODULE_TAGS)),)
# Force localization check if it's not tagged as tests.
LOCAL_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) -z
@@ -373,6 +381,8 @@ $(LOCAL_BUILT_MODULE): $(AAPT) | $(ZIPALIGN)
$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_abis)
# PRIVATE_JNI_SHARED_LIBRARIES_ABI is a list of ABI names.
$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis)
+$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES_ZIP_OPTIONS := $(LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS)
+$(LOCAL_BUILT_MODULE): PRIVATE_PAGE_ALIGN_JNI_SHARED_LIBRARIES := $(LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES)
ifneq ($(TARGET_BUILD_APPS),)
# Include all resources for unbundled apps.
LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
@@ -485,7 +495,7 @@ $(apk_jni_stripped) : $(LOCAL_BUILT_MODULE) | $(ZIPALIGN)
@rm -rf $(dir $@) && mkdir -p $(dir $@)
$(hide) cp $< $@
$(hide) zip -d $@ $(foreach f,$(PRIVATE_JNI_SHARED_LIBRARIES),\*/$(f))
- $(call align-package)
+ $(align-package)
$(call dist-for-goals, apps_only, $(apk_jni_stripped):$(dist_subdir)/$(LOCAL_PACKAGE_NAME).apk)