From a1de5df4bdaf48532c9e9620616d376d9f1dd6fd Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 21 Mar 2022 14:31:31 -0700 Subject: [PATCH 1/3] Remove ALL_GENERATED_SOURCES ALL_GENERATED_SOURCES contains the generated sources of modules defined in Make. They always have a path inside the intermediates directories. The only readers of ALL_GENERATED_SOURCES are filtering for files in the output directories, and will never match anything. Test: m checkbuild Change-Id: Ic9af8761d445fa90088f838c385bd2aea3bc3048 --- core/Makefile | 9 +-------- core/binary.mk | 2 -- core/config.mk | 1 + core/definitions.mk | 3 --- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/core/Makefile b/core/Makefile index de73a05f60..00952714e6 100644 --- a/core/Makefile +++ b/core/Makefile @@ -779,7 +779,6 @@ endif # ----------------------------------------------------------------- # the root dir INTERNAL_ROOT_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) INSTALLED_FILES_FILE_ROOT := $(PRODUCT_OUT)/installed-files-root.txt @@ -813,7 +812,6 @@ endif # the ramdisk ifdef BUILDING_RAMDISK_IMAGE INTERNAL_RAMDISK_FILES := $(filter $(TARGET_RAMDISK_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) INSTALLED_FILES_FILE_RAMDISK := $(PRODUCT_OUT)/installed-files-ramdisk.txt @@ -1247,7 +1245,6 @@ ifeq ($(PRODUCT_SUPPORTS_VERITY),true) endif INTERNAL_VENDOR_RAMDISK_FILES := $(filter $(TARGET_VENDOR_RAMDISK_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) INTERNAL_VENDOR_RAMDISK_TARGET := $(call intermediates-dir-for,PACKAGING,vendor_boot)/vendor_ramdisk.cpio$(RAMDISK_EXT) @@ -2451,7 +2448,6 @@ endif ifneq ($(BUILDING_DEBUG_BOOT_IMAGE)$(BUILDING_DEBUG_VENDOR_BOOT_IMAGE),) INTERNAL_DEBUG_RAMDISK_FILES := $(filter $(TARGET_DEBUG_RAMDISK_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) # Directories to be picked into the debug ramdisk. @@ -2589,7 +2585,6 @@ endif # BUILDING_DEBUG_BOOT_IMAGE ifdef BUILDING_DEBUG_VENDOR_BOOT_IMAGE INTERNAL_VENDOR_DEBUG_RAMDISK_FILES := $(filter $(TARGET_VENDOR_DEBUG_RAMDISK_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) # The debug vendor ramdisk combines vendor ramdisk and debug ramdisk. @@ -2700,7 +2695,6 @@ $(call declare-1p-target,$(INTERNAL_TEST_HARNESS_RAMDISK_ADB_DEBUG_PROP_TARGET)) INTERNAL_TEST_HARNESS_RAMDISK_FILES := $(filter $(TARGET_TEST_HARNESS_RAMDISK_OUT)/%, \ $(INTERNAL_TEST_HARNESS_RAMDISK_ADB_DEBUG_PROP_TARGET) \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) # The order is important here. The test harness ramdisk staging directory has to @@ -2875,7 +2869,7 @@ fsverity-metadata-targets := $(sort $(filter \ $(TARGET_OUT)/etc/boot-image.prof \ $(TARGET_OUT)/etc/dirty-image-objects \ $(TARGET_OUT)/etc/classpaths/%.pb, \ - $(ALL_GENERATED_SOURCES) $(ALL_DEFAULT_INSTALLED_MODULES))) + $(ALL_DEFAULT_INSTALLED_MODULES))) define fsverity-generate-metadata $(1).fsv_meta: PRIVATE_SRC := $(1) @@ -2922,7 +2916,6 @@ ALL_DEFAULT_INSTALLED_MODULES += $(FSVERITY_APK_OUT) endif # PRODUCT_SYSTEM_FSVERITY_GENERATE_METADATA INTERNAL_SYSTEMIMAGE_FILES := $(sort $(filter $(TARGET_OUT)/%, \ - $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES))) # Create symlink /system/vendor to /vendor if necessary. diff --git a/core/binary.mk b/core/binary.mk index 94e3a0fecb..665270e30a 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -573,8 +573,6 @@ my_generated_sources := $(patsubst $(generated_sources_dir)/%,$(intermediates)/% # the dependencies. my_gen_src_files := $(filter %.c %$(LOCAL_CPP_EXTENSION) %.S %.s,$(my_generated_sources)) -ALL_GENERATED_SOURCES += $(my_generated_sources) - #################################################### ## Compile RenderScript with reflected C++ #################################################### diff --git a/core/config.mk b/core/config.mk index 5ef9211846..12bb9aad52 100644 --- a/core/config.mk +++ b/core/config.mk @@ -159,6 +159,7 @@ $(KATI_deprecated_var BOARD_PLAT_PUBLIC_SEPOLICY_DIR,Use SYSTEM_EXT_PUBLIC_SEPOL $(KATI_deprecated_var BOARD_PLAT_PRIVATE_SEPOLICY_DIR,Use SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS instead) $(KATI_obsolete_var TARGET_NO_VENDOR_BOOT,Use PRODUCT_BUILD_VENDOR_BOOT_IMAGE instead) $(KATI_obsolete_var PRODUCT_CHECK_ELF_FILES,Use BUILD_BROKEN_PREBUILT_ELF_FILES instead) +$(KATI_obsolete_var ALL_GENERATED_SOURCES,ALL_GENERATED_SOURCES is no longer used) # Used to force goals to build. Only use for conditionally defined goals. .PHONY: FORCE diff --git a/core/definitions.mk b/core/definitions.mk index 1c9ebad78b..f4834b6dea 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -59,9 +59,6 @@ ALL_MODULE_TAGS:= # its sub-variables.) ALL_MODULE_NAME_TAGS:= -# Full path to all files that are made by some tool -ALL_GENERATED_SOURCES:= - # Full path to all asm, C, C++, lex and yacc generated C files. # These all have an order-only dependency on the copied headers ALL_C_CPP_ETC_OBJECTS:= From c6d6306771a3ea6db454ca7b286f9092c17f0aa7 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 21 Mar 2022 14:32:42 -0700 Subject: [PATCH 2/3] Remove ALL_ORIGINAL_DYNAMIC_BINARIES Nothing ever reads the value, stop collecting it. Test: m checkbuild Change-Id: I2f2ba905c7c45c0da36606710b30864cd5822d91 --- core/config.mk | 1 + core/definitions.mk | 3 --- core/dynamic_binary.mk | 9 ++------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/core/config.mk b/core/config.mk index 12bb9aad52..48aa724b32 100644 --- a/core/config.mk +++ b/core/config.mk @@ -160,6 +160,7 @@ $(KATI_deprecated_var BOARD_PLAT_PRIVATE_SEPOLICY_DIR,Use SYSTEM_EXT_PRIVATE_SEP $(KATI_obsolete_var TARGET_NO_VENDOR_BOOT,Use PRODUCT_BUILD_VENDOR_BOOT_IMAGE instead) $(KATI_obsolete_var PRODUCT_CHECK_ELF_FILES,Use BUILD_BROKEN_PREBUILT_ELF_FILES instead) $(KATI_obsolete_var ALL_GENERATED_SOURCES,ALL_GENERATED_SOURCES is no longer used) +$(KATI_obsolete_var ALL_ORIGINAL_DYNAMIC_BINARIES,ALL_ORIGINAL_DYNAMIC_BINARIES is no longer used) # Used to force goals to build. Only use for conditionally defined goals. .PHONY: FORCE diff --git a/core/definitions.mk b/core/definitions.mk index f4834b6dea..4e5c7885d6 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -63,9 +63,6 @@ ALL_MODULE_NAME_TAGS:= # These all have an order-only dependency on the copied headers ALL_C_CPP_ETC_OBJECTS:= -# The list of dynamic binaries that haven't been stripped/compressed/etc. -ALL_ORIGINAL_DYNAMIC_BINARIES:= - # These files go into the SDK ALL_SDK_FILES:= diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk index a9b3720a68..52d7ddc18f 100644 --- a/core/dynamic_binary.mk +++ b/core/dynamic_binary.mk @@ -25,13 +25,8 @@ intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX)) # The includer of this file will define a rule to build this target. linked_module := $(intermediates)/LINKED/$(notdir $(my_installed_module_stem)) -ALL_ORIGINAL_DYNAMIC_BINARIES += $(linked_module) - -# Because TARGET_SYMBOL_FILTER_FILE depends on ALL_ORIGINAL_DYNAMIC_BINARIES, -# the linked_module rules won't necessarily inherit the PRIVATE_ -# variables from LOCAL_BUILT_MODULE. This tells binary.make to explicitly -# define the PRIVATE_ variables for linked_module as well as for -# LOCAL_BUILT_MODULE. +# This tells binary.make to explicitly define the PRIVATE_ variables for +# linked_module as well as for LOCAL_BUILT_MODULE. LOCAL_INTERMEDIATE_TARGETS := $(linked_module) ################################### From 79a76ec581e4f582d3602ea580f3949928542a03 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 21 Mar 2022 15:06:11 -0700 Subject: [PATCH 3/3] Depend on PRODUCT_COPY_FILES that are not in images If0e4b958b3dfaa02771a5da70f970379635f904e made `droidcore` stop depending on `files` so that installed files from unbuilt images would not be built. That also disabled the dependency on installed files that were not in any image, but the vendor notice file had overly broad dependencies that caused them to still be built. Icdb11d3c72b180cd02231e8dc98ae500d6566a98 made the vendor notice file dependencies less broad, exposing the missing `droidcore` dependencies. Track the list of installed device files that are not included in any image, built or unbuilt, and add them as a dependency for `droidcore`. Bug: 225187583 Test: m checkbuild Test: check dependency path to encryptionkey.img Change-Id: I084158ffb52b353e9a3eca9ad06a68c80d3bd371 --- core/Makefile | 25 +++++++++++++++++++++++++ core/main.mk | 1 + 2 files changed, 26 insertions(+) diff --git a/core/Makefile b/core/Makefile index 00952714e6..6c4cec8a87 100644 --- a/core/Makefile +++ b/core/Makefile @@ -746,6 +746,12 @@ event-log-tags: $(event_log_tags_file) ALL_DEFAULT_INSTALLED_MODULES += $(event_log_tags_file) +# Initialize INSTALLED_FILES_OUTSIDE_IMAGES with the list of all device files, +# files installed in images will be filtered out later. +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out \ + $(PRODUCT_OUT)/apex/% \ + $(PRODUCT_OUT)/testcases/%, \ + $(filter $(PRODUCT_OUT)/%,$(ALL_DEFAULT_INSTALLED_MODULES))) # ################################################################# # Targets for boot/OS images @@ -778,9 +784,11 @@ endif # ----------------------------------------------------------------- # the root dir +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_ROOT_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) INTERNAL_ROOT_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ $(ALL_DEFAULT_INSTALLED_MODULES)) + INSTALLED_FILES_FILE_ROOT := $(PRODUCT_OUT)/installed-files-root.txt INSTALLED_FILES_JSON_ROOT := $(INSTALLED_FILES_FILE_ROOT:.txt=.json) $(INSTALLED_FILES_FILE_ROOT): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_ROOT) @@ -810,6 +818,7 @@ endif # ----------------------------------------------------------------- # the ramdisk +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_RAMDISK_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_RAMDISK_IMAGE INTERNAL_RAMDISK_FILES := $(filter $(TARGET_RAMDISK_OUT)/%, \ $(ALL_DEFAULT_INSTALLED_MODULES)) @@ -1238,6 +1247,7 @@ endif # BUILDING_INIT_BOOT_IMAGE is not true # ----------------------------------------------------------------- # vendor boot image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_VENDOR_RAMDISK_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifeq ($(BUILDING_VENDOR_BOOT_IMAGE),true) ifeq ($(PRODUCT_SUPPORTS_VERITY),true) @@ -1974,6 +1984,7 @@ endef # Recovery image # Recovery image exists if we are building recovery, or building recovery as boot. +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_RECOVERY_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_RECOVERY_IMAGE INTERNAL_RECOVERYIMAGE_FILES := $(filter $(TARGET_RECOVERY_OUT)/%, \ @@ -2445,6 +2456,7 @@ endif # ----------------------------------------------------------------- # Build debug ramdisk and debug boot image. +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_DEBUG_RAMDISK_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifneq ($(BUILDING_DEBUG_BOOT_IMAGE)$(BUILDING_DEBUG_VENDOR_BOOT_IMAGE),) INTERNAL_DEBUG_RAMDISK_FILES := $(filter $(TARGET_DEBUG_RAMDISK_OUT)/%, \ @@ -2582,6 +2594,7 @@ endif # BUILDING_DEBUG_BOOT_IMAGE # ----------------------------------------------------------------- # vendor debug ramdisk # Combines vendor ramdisk files and debug ramdisk files to build the vendor debug ramdisk. +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_VENDOR_DEBUG_RAMDISK_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_DEBUG_VENDOR_BOOT_IMAGE INTERNAL_VENDOR_DEBUG_RAMDISK_FILES := $(filter $(TARGET_VENDOR_DEBUG_RAMDISK_OUT)/%, \ @@ -2693,6 +2706,7 @@ endif $(call declare-1p-target,$(INTERNAL_TEST_HARNESS_RAMDISK_ADB_DEBUG_PROP_TARGET)) +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_TEST_HARNESS_RAMDISK_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) INTERNAL_TEST_HARNESS_RAMDISK_FILES := $(filter $(TARGET_TEST_HARNESS_RAMDISK_OUT)/%, \ $(INTERNAL_TEST_HARNESS_RAMDISK_ADB_DEBUG_PROP_TARGET) \ $(ALL_DEFAULT_INSTALLED_MODULES)) @@ -2915,6 +2929,7 @@ ALL_DEFAULT_INSTALLED_MODULES += $(FSVERITY_APK_OUT) endif # PRODUCT_SYSTEM_FSVERITY_GENERATE_METADATA +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) INTERNAL_SYSTEMIMAGE_FILES := $(sort $(filter $(TARGET_OUT)/%, \ $(ALL_DEFAULT_INSTALLED_MODULES))) @@ -3101,6 +3116,7 @@ platform-java: # ----------------------------------------------------------------- # data partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_DATA)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) INTERNAL_USERDATAIMAGE_FILES := \ $(filter $(TARGET_OUT_DATA)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) @@ -3194,6 +3210,7 @@ endif # BOARD_BPT_INPUT_FILES # ----------------------------------------------------------------- # cache partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_CACHE)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_CACHE_IMAGE INTERNAL_CACHEIMAGE_FILES := \ $(filter $(TARGET_OUT_CACHE)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) @@ -3235,6 +3252,7 @@ endif # BUILDING_CACHE_IMAGE # ----------------------------------------------------------------- # system_other partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_SYSTEM_OTHER)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_SYSTEM_OTHER_IMAGE ifeq ($(BOARD_USES_SYSTEM_OTHER_ODEX),true) # Marker file to identify that odex files are installed @@ -3315,6 +3333,7 @@ endif # BUILDING_SYSTEM_OTHER_IMAGE # ----------------------------------------------------------------- # vendor partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_VENDOR)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_VENDOR_IMAGE INTERNAL_VENDORIMAGE_FILES := \ $(filter $(TARGET_OUT_VENDOR)/%,\ @@ -3398,6 +3417,7 @@ endif # ----------------------------------------------------------------- # product partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_PRODUCT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_PRODUCT_IMAGE INTERNAL_PRODUCTIMAGE_FILES := \ $(filter $(TARGET_OUT_PRODUCT)/%,\ @@ -3456,6 +3476,7 @@ endif # ----------------------------------------------------------------- # system_ext partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_SYSTEM_EXT)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_SYSTEM_EXT_IMAGE INTERNAL_SYSTEM_EXTIMAGE_FILES := \ $(filter $(TARGET_OUT_SYSTEM_EXT)/%,\ @@ -3516,6 +3537,7 @@ endif # ----------------------------------------------------------------- # odm partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_ODM)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_ODM_IMAGE INTERNAL_ODMIMAGE_FILES := \ $(filter $(TARGET_OUT_ODM)/%,\ @@ -3593,6 +3615,7 @@ endif # ----------------------------------------------------------------- # vendor_dlkm partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_VENDOR_DLKM)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_VENDOR_DLKM_IMAGE INTERNAL_VENDOR_DLKMIMAGE_FILES := \ $(filter $(TARGET_OUT_VENDOR_DLKM)/%,\ @@ -3652,6 +3675,7 @@ endif # ----------------------------------------------------------------- # odm_dlkm partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_ODM_DLKM)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_ODM_DLKM_IMAGE INTERNAL_ODM_DLKMIMAGE_FILES := \ $(filter $(TARGET_OUT_ODM_DLKM)/%,\ @@ -3712,6 +3736,7 @@ endif # ----------------------------------------------------------------- # system_dlkm partition image +INSTALLED_FILES_OUTSIDE_IMAGES := $(filter-out $(TARGET_OUT_SYSTEM_DLKM)/%, $(INSTALLED_FILES_OUTSIDE_IMAGES)) ifdef BUILDING_SYSTEM_DLKM_IMAGE INTERNAL_SYSTEM_DLKMIMAGE_FILES := \ diff --git a/core/main.mk b/core/main.mk index d5dc49f6ae..b9be017a88 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1628,6 +1628,7 @@ vbmetavendorimage: $(INSTALLED_VBMETA_VENDORIMAGE_TARGET) # perform a full system build (either unbundled or not). .PHONY: droidcore-unbundled droidcore-unbundled: $(filter $(HOST_OUT_ROOT)/%,$(modules_to_install)) \ + $(INSTALLED_FILES_OUTSIDE_IMAGES) \ $(INSTALLED_SYSTEMIMAGE_TARGET) \ $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \