Merge "Enable toc optimization for host builds"
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 56df2a9..13d20e0 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -269,9 +269,6 @@
# dependent binaries of a .toc file will be rebuilt only when the content of
# the .toc file is changed.
###########################################################
-ifndef LOCAL_IS_HOST_MODULE
-# Disable .toc optimization for host modules: we may run the host binaries during the build process
-# and the libraries' implementation matters.
ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES)
LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc
$(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE)
@@ -283,7 +280,6 @@
# Build .toc file when using mm, mma, or make $(my_register_name)
$(my_all_targets): $(LOCAL_BUILT_MODULE).toc
endif
-endif
###########################################################
## logtags: Add .logtags files to global list
diff --git a/core/binary.mk b/core/binary.mk
index 6413153..4dcb152 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -1507,13 +1507,7 @@
$(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
$(addsuffix $(so_suffix), \
$(installed_shared_library_module_names)))
-ifdef LOCAL_IS_HOST_MODULE
-# Disable .toc optimization for host modules: we may run the host binaries during the build process
-# and the libraries' implementation matters.
-built_shared_library_deps := $(built_shared_libraries)
-else
built_shared_library_deps := $(addsuffix .toc, $(built_shared_libraries))
-endif
my_system_shared_libraries_fullpath :=
endif
diff --git a/core/main.mk b/core/main.mk
index fee2995..de77927 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -660,6 +660,14 @@
$(1): | $(2)
endef
+# Use a normal dependency instead of an order-only dependency when installing
+# host dynamic binaries so that the timestamp of the final binary always
+# changes, even if the toc optimization has skipped relinking the binary
+# and its dependant shared libraries.
+define add-required-host-so-deps
+$(1): $(2)
+endef
+
$(foreach m,$(ALL_MODULES), \
$(eval r := $(ALL_MODULES.$(m).REQUIRED)) \
$(if $(r), \
@@ -702,7 +710,9 @@
$(if $(3),$(eval deps := $(addprefix host_cross_,$(deps))))\
$(eval r := $(filter $($(root))/%,$(call module-installed-files,\
$(deps))))\
- $(eval $(call add-required-deps,$(word 2,$(p)),$(r)))\
+ $(if $(filter $(1),HOST_),\
+ $(eval $(call add-required-host-so-deps,$(word 2,$(p)),$(r))),\
+ $(eval $(call add-required-deps,$(word 2,$(p)),$(r))))\
$(eval ALL_MODULES.$(mod).REQUIRED += $(deps)))
endef