Remove [jni_]link_type files
Now that mm/ONE_SHOT_MAKEFILE have been removed, we can expect to know about all of our dependencies at the end of the build. This removes 19k nodes from our build graph (aosp-master aosp_arm64-eng), though in a default build, only 3k of those are used. Test: ALLOW_MISSING_DEPENDENCIES=true, then trigger a missing dependency Test: treehugger Test: create link_type files, then apply CleanSpec.mk, ensure they're removed Change-Id: I9506331e4a9911d2f26e59a2f72a97aef1644073
This commit is contained in:
@@ -604,7 +604,6 @@ TUNE2FS := $(HOST_OUT_EXECUTABLES)/tune2fs$(HOST_EXECUTABLE_SUFFIX)
|
||||
JARJAR := $(HOST_OUT_JAVA_LIBRARIES)/jarjar.jar
|
||||
DATA_BINDING_COMPILER := $(HOST_OUT_JAVA_LIBRARIES)/databinding-compiler.jar
|
||||
FAT16COPY := build/make/tools/fat16copy.py
|
||||
CHECK_LINK_TYPE := build/make/tools/check_link_type.py
|
||||
CHECK_ELF_FILE := build/make/tools/check_elf_file.py
|
||||
LPMAKE := $(HOST_OUT_EXECUTABLES)/lpmake$(HOST_EXECUTABLE_SUFFIX)
|
||||
BUILD_IMAGE := $(HOST_OUT_EXECUTABLES)/build_image$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
39
core/main.mk
39
core/main.mk
@@ -970,45 +970,6 @@ ifdef link_type_error
|
||||
$(error exiting from previous errors)
|
||||
endif
|
||||
|
||||
# The intermediate filename for link type rules
|
||||
#
|
||||
# APPS are special -- they have up to three different rules:
|
||||
# 1. The COMMON rule for Java libraries
|
||||
# 2. The jni_link_type rule for embedded native code
|
||||
# 3. The 2ND_jni_link_type for the second architecture native code
|
||||
define link-type-file
|
||||
$(eval _ltf_aux_variant:=$(link-type-aux-variant))\
|
||||
$(if $(_ltf_aux_variant),$(call aux-variant-load-env,$(_ltf_aux_variant)))\
|
||||
$(call intermediates-dir-for,$(link-type-class),$(link-type-name),$(filter AUX HOST HOST_CROSS,$(link-type-prefix)),$(link-type-common),$(link-type-2ndarchprefix),$(filter HOST_CROSS,$(link-type-prefix)))/$(if $(filter APPS,$(link-type-class)),$(if $(link-type-common),,$(link-type-2ndarchprefix)jni_))link_type\
|
||||
$(if $(_ltf_aux_variant),$(call aux-variant-load-env,none))\
|
||||
$(eval _ltf_aux_variant:=)
|
||||
endef
|
||||
|
||||
# Write out the file-based link_type rules for the ALLOW_MISSING_DEPENDENCIES
|
||||
# case. We always need to write the file for mm to work, but only need to
|
||||
# check it if we weren't able to check it when reading the Android.mk files.
|
||||
define link-type-file-rule
|
||||
my_link_type_deps := $(foreach l,$($(1).DEPS),$(call link-type-file,$(l)))
|
||||
my_link_type_file := $(call link-type-file,$(1))
|
||||
$($(1).BUILT): | $$(my_link_type_file)
|
||||
$$(my_link_type_file): PRIVATE_DEPS := $$(my_link_type_deps)
|
||||
ifeq ($($(1).MISSING),true)
|
||||
$$(my_link_type_file): $(CHECK_LINK_TYPE)
|
||||
endif
|
||||
$$(my_link_type_file): $$(my_link_type_deps)
|
||||
@echo Check module type: $$@
|
||||
$$(hide) mkdir -p $$(dir $$@) && rm -f $$@
|
||||
ifeq ($($(1).MISSING),true)
|
||||
$$(hide) $(CHECK_LINK_TYPE) --makefile $($(1).MAKEFILE) --module $(link-type-name) \
|
||||
--type "$($(1).TYPE)" $(addprefix --allowed ,$($(1).ALLOWED)) \
|
||||
$(addprefix --warn ,$($(1).WARN)) $$(PRIVATE_DEPS)
|
||||
endif
|
||||
$$(hide) echo "$($(1).TYPE)" >$$@
|
||||
endef
|
||||
|
||||
$(foreach lt,$(ALL_LINK_TYPES),\
|
||||
$(eval $(call link-type-file-rule,$(lt))))
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# Figure out our module sets.
|
||||
#
|
||||
|
Reference in New Issue
Block a user