diff options
| -rw-r--r-- | core/Makefile | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/core/Makefile b/core/Makefile index 78ef81fba1..5e9fb29726 100644 --- a/core/Makefile +++ b/core/Makefile @@ -662,6 +662,8 @@ $(INSTALLED_SDK_BUILD_PROP_TARGET): $(INSTALLED_BUILD_PROP_TARGET) # ----------------------------------------------------------------- # package stats +ifdef BUILDING_SYSTEM_IMAGE + PACKAGE_STATS_FILE := $(PRODUCT_OUT)/package-stats.txt PACKAGES_TO_STAT := \ $(sort $(filter $(TARGET_OUT)/% $(TARGET_OUT_DATA)/%, \ @@ -680,6 +682,8 @@ endif .PHONY: package-stats package-stats: $(PACKAGE_STATS_FILE) +endif # BUILDING_SYSTEM_IMAGE + # ----------------------------------------------------------------- # Cert-to-package mapping. Used by the post-build signing tools. # Use a macro to add newline to each echo command @@ -2048,6 +2052,8 @@ FULL_SYSTEMIMAGE_DEPS += $(INTERNAL_ROOT_FILES) $(INSTALLED_FILES_FILE_ROOT) # on the device because it depends on everything in a given device # image which defines a vintf_fragment. +ifdef BUILDING_SYSTEM_IMAGE + BUILT_ASSEMBLED_SYSTEM_MANIFEST := $(PRODUCT_OUT)/verified_assembled_system_manifest.xml $(BUILT_ASSEMBLED_SYSTEM_MANIFEST): $(HOST_OUT_EXECUTABLES)/assemble_vintf $(BUILT_ASSEMBLED_SYSTEM_MANIFEST): $(BUILT_VENDOR_MATRIX) @@ -2062,6 +2068,8 @@ $(BUILT_ASSEMBLED_SYSTEM_MANIFEST): $(FULL_SYSTEMIMAGE_DEPS) find $(TARGET_OUT)/etc/vintf/manifest -type f -name "*.xml" | \ sed "s/^/-i /" | tr '\n' ' ') -o $@ +endif # BUILDING_SYSTEM_IMAGE + # ----------------------------------------------------------------- ifdef BUILDING_SYSTEM_IMAGE @@ -2187,6 +2195,15 @@ APEX_MODULE_LIBS= \ # still may create these libraries in /system (b/129006418). DISABLE_APEX_LIBS_ABSENCE_CHECK ?= +# Exclude lib/arm and lib/arm64 which contain the native bridge proxy libs. +# They are compiled for the guest architecture and used with an entirely +# different linker config. The native libs are then linked to as usual via +# exported interfaces, so the proxy libs do not violate the interface boundaries +# on the native architecture. +# TODO(b/130630776): Introduce a make variable for the appropriate directory +# when native bridge is active. +APEX_LIBS_ABSENCE_CHECK_EXCLUDE=lib/arm lib/arm64 + # If the check below fails, some library has ended up in system/lib or # system/lib64 that is intended to only go into some APEX package. The likely # cause is that a library or binary in /system has grown a dependency that @@ -2211,8 +2228,11 @@ DISABLE_APEX_LIBS_ABSENCE_CHECK ?= ifndef DISABLE_APEX_LIBS_ABSENCE_CHECK define check-apex-libs-absence $(hide) ( \ - cd $(TARGET_OUT); \ - findres=$$(find lib* -type f \( -false $(foreach lib,$(APEX_MODULE_LIBS),-o -name $(lib)) \) -print) || exit 1; \ + cd $(TARGET_OUT) && \ + findres=$$(find lib* \ + $(foreach dir,$(APEX_LIBS_ABSENCE_CHECK_EXCLUDE),-path $(dir) -prune -o) \ + -type f \( -false $(foreach lib,$(APEX_MODULE_LIBS),-o -name $(lib)) \) \ + -print) && \ if [ -n "$$findres" ]; then \ echo "APEX libraries found in system image (see comment in build/make/core/Makefile for details):" 1>&2; \ echo "$$findres" | sort 1>&2; \ @@ -3263,6 +3283,7 @@ define build-chained-vbmeta-image --output $@ endef +ifdef BUILDING_SYSTEM_IMAGE ifdef BOARD_AVB_VBMETA_SYSTEM INSTALLED_VBMETA_SYSTEMIMAGE_TARGET := $(PRODUCT_OUT)/vbmeta_system.img $(INSTALLED_VBMETA_SYSTEMIMAGE_TARGET): \ @@ -3271,6 +3292,7 @@ $(INSTALLED_VBMETA_SYSTEMIMAGE_TARGET): \ $(BOARD_AVB_VBMETA_SYSTEM_KEY_PATH) $(call build-chained-vbmeta-image,vbmeta_system) endif +endif # BUILDING_SYSTEM_IMAGE ifdef BOARD_AVB_VBMETA_VENDOR INSTALLED_VBMETA_VENDORIMAGE_TARGET := $(PRODUCT_OUT)/vbmeta_vendor.img @@ -3721,6 +3743,13 @@ define dump-dynamic-partitions-info echo "build_non_sparse_super_partition=true" >> $(1)) endef +# By conditionally including the dependency of the target files package on the +# full system image deps, we speed up builds that do not build the system +# image. +ifdef BUILDING_SYSTEM_IMAGE +$(BUILT_TARGET_FILES_PACKAGE): $(FULL_SYSTEMIMAGE_DEPS) +endif + # Depending on the various images guarantees that the underlying # directories are up-to-date. $(BUILT_TARGET_FILES_PACKAGE): \ @@ -3728,7 +3757,6 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_RADIOIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ - $(FULL_SYSTEMIMAGE_DEPS) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ @@ -4106,7 +4134,9 @@ ifdef BUILDING_SYSTEM_OTHER_IMAGE endif @# Metadata for compatibility verification. $(hide) cp $(BUILT_SYSTEM_MATRIX) $(zip_root)/META/system_matrix.xml +ifdef BUILT_ASSEMBLED_SYSTEM_MANIFEST $(hide) cp $(BUILT_ASSEMBLED_SYSTEM_MANIFEST) $(zip_root)/META/system_manifest.xml +endif ifdef BUILT_ASSEMBLED_VENDOR_MANIFEST $(hide) cp $(BUILT_ASSEMBLED_VENDOR_MANIFEST) $(zip_root)/META/vendor_manifest.xml endif |