Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"
This reverts commit c1f5d9c203324b9435414e789c02394ca99c98f7.
Change-Id: I7e9969a060e3f1380154da65e76134168aee15d8
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 5ee5edf..42dfc1b 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -223,15 +223,25 @@
###########################################################
## Create .toc files from shared objects to reduce unnecessary rebuild
# .toc files have the list of external dynamic symbols without their addresses.
-# As .KATI_RESTAT is specified to .toc files and commit-change-for-toc is used,
-# dependent binaries of a .toc file will be rebuilt only when the content of
+# For ninja build, .toc files will be updated only when the content of .toc
+# files are changed. As .KATI_RESTAT is specified to .toc files, dependent
+# binaries of a .toc file will be rebuilt only when the content of
# the .toc file is changed.
###########################################################
ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES)
LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc
$(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE)
+ifeq ($(BUILDING_WITH_NINJA),true)
$(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@.tmp)
- $(call commit-change-for-toc,$@)
+ $(hide) if cmp -s $@.tmp $@ ; then \
+ rm $@.tmp ; \
+ else \
+ mv $@.tmp $@ ; \
+ fi
+else
+ @# make doesn't support restat. We always update .toc files so the dependents will always be updated too.
+ $(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@)
+endif
# Kati adds restat=1 to ninja. GNU make does nothing for this.
.KATI_RESTAT: $(LOCAL_BUILT_MODULE).toc
diff --git a/core/config.mk b/core/config.mk
index e615159..49810ee 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -540,10 +540,6 @@
ZIPTIME := $(HOST_OUT_EXECUTABLES)/ziptime$(HOST_EXECUTABLE_SUFFIX)
endif
-# ijar converts a .jar file to a smaller .jar file which only has its
-# interfaces.
-IJAR := $(HOST_OUT_EXECUTABLES)/ijar$(BUILD_EXECUTABLE_SUFFIX)
-
# relocation packer
RELOCATION_PACKER := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/relocation_packer/relocation_packer
diff --git a/core/definitions.mk b/core/definitions.mk
index b7a7f80..0089865 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1927,42 +1927,6 @@
$(hide) rm $@.tmpjill.jack
endef
-# Moves $1.tmp to $1 if necessary. This is designed to be used with
-# .KATI_RESTAT. For kati, this function doesn't update the timestamp
-# of $1 when $1.tmp is identical to $1 so that ninja won't rebuild
-# targets which depend on $1. For GNU make, this function simply
-# copies $1.tmp to $1.
-ifeq ($(BUILDING_WITH_NINJA),true)
-define commit-change-for-toc
-$(hide) if cmp -s $1.tmp $1 ; then \
- rm $1.tmp ; \
-else \
- mv $1.tmp $1 ; \
-fi
-endef
-else
-define commit-change-for-toc
-@# make doesn't support restat. We always update .toc files so the dependents will always be updated too.
-$(hide) mv $1.tmp $1
-endef
-endif
-
-## Rule to creates a table of contents from a .jar file.
-## Must be called with $(eval).
-# $1: A .jar file
-define _transform-jar-to-toc
-$1.toc: $1 | $(IJAR)
- @echo Generating TOC: $$@
- $(hide) $(IJAR) $$< $$@.tmp
- $$(call commit-change-for-toc,$$@)
-endef
-
-## Define a rule which generates .jar.toc and mark it as .KATI_RESTAT.
-define define-jar-to-toc-rule
-$(eval $(call _transform-jar-to-toc,$1))
-$(eval .KATI_RESTAT: $1.toc)
-endef
-
# Invoke Jack to compile java from source to jack files without shrink or obfuscation.
#
diff --git a/core/java.mk b/core/java.mk
index 9bdb77f..f9305df 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -456,8 +456,6 @@
@echo Copying: $@
$(hide) $(ACP) -fp $< $@
-$(call define-jar-to-toc-rule, $(full_classes_jar))
-
# Run proguard if necessary, otherwise just copy the file.
ifdef LOCAL_PROGUARD_ENABLED
ifneq ($(filter-out full custom nosystem obfuscation optimization shrinktests,$(LOCAL_PROGUARD_ENABLED)),)
diff --git a/core/java_common.mk b/core/java_common.mk
index b7f07ab..9d81096 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -147,7 +147,6 @@
full_shared_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES),$(LOCAL_IS_HOST_MODULE))
full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES),$(LOCAL_IS_HOST_MODULE))
-full_java_lib_deps := $(addsuffix .toc, $(full_java_lib_deps))
else # LOCAL_IS_HOST_MODULE
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index 0a8a7f8..3af7101 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -310,8 +310,6 @@
$(common_javalib_jar) : $(common_classes_jar) | $(ACP)
$(transform-prebuilt-to-target)
-$(call define-jar-to-toc-rule, $(common_classes_jar))
-
# make sure the classes.jar and javalib.jar are built before $(LOCAL_BUILT_MODULE)
$(built_module) : $(common_javalib_jar)
endif # TARGET JAVA_LIBRARIES