diff --git a/core/base_rules.mk b/core/base_rules.mk index 5ee5edf82..7e33660ae 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -227,6 +227,9 @@ LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE) # 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) @@ -236,6 +239,7 @@ $(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE) # Kati adds restat=1 to ninja. GNU make does nothing for this. .KATI_RESTAT: $(LOCAL_BUILT_MODULE).toc endif +endif ########################################################### ## logtags: Add .logtags files to global list diff --git a/core/binary.mk b/core/binary.mk index 0bbbfcd0d..4cb62b30e 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1202,7 +1202,7 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(my_shared_libraries))) -built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) +built_shared_library_deps := $(addsuffix .toc, $(built_shared_libraries)) # Add the NDK libraries to the built module dependency my_system_shared_libraries_fullpath := \ @@ -1216,7 +1216,13 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(installed_shared_library_module_names))) -built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) +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 @@ -1312,7 +1318,7 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ALL_OBJECTS := $(all_objects) ########################################################### # all_libraries is used for the dependencies on LOCAL_BUILT_MODULE. all_libraries := \ - $(built_shared_library_tocs) \ + $(built_shared_library_deps) \ $(my_system_shared_libraries_fullpath) \ $(built_static_libraries) \ $(built_whole_libraries) diff --git a/core/dex_preopt_libart.mk b/core/dex_preopt_libart.mk index 1bd0bd7d9..3f52876eb 100644 --- a/core/dex_preopt_libart.mk +++ b/core/dex_preopt_libart.mk @@ -11,11 +11,6 @@ else DEX2OAT := $(HOST_OUT_EXECUTABLES)/dex2oatd$(HOST_EXECUTABLE_SUFFIX) endif -# By default, do not run rerun dex2oat if the tool changes. -# Comment out the | to force dex2oat to rerun on after all changes. -DEX2OAT_DEPENDENCY := art/runtime/oat.cc # dependency on oat version number -DEX2OAT_DEPENDENCY += art/runtime/image.cc # dependency on image version number -DEX2OAT_DEPENDENCY += | DEX2OAT_DEPENDENCY += $(DEX2OAT) # Use the first preloaded-classes file in PRODUCT_COPY_FILES.