jacoco-report-classes-all.jar doesn't depend on fake modules
The reason that the jar file depended on modules_to_install was to collect files from other partitions, not just system. It isn't the intention to gather fake modules like phony modules and more importantly their dependencies (LOCAL_REQUIRE_MODULES). This change explicitly filters out the fake modules to make the intent clearer. In fact, the jar file depending on fake modules can have a side effect that overridden modules are installed. It can happen as follows: PRODUCT_PACKAGES += A B C LOCAL_MODULE := A LOCAL_REQUIRED_MODULES := B include $(BUILD_PHONY_PACKAGE) LOCAL_MODULE := B include $(BUILD_XXX) ... LOCAL_MODULE := C LOCAL_OVERRIDES_MODULES := B include $(BUILD_XXX) modules_to_install is set to out/target/product/xxx/fake_packages/A-timestamp out/target/product/xxx/system/.../C ; B is correctly overridden. But there still is an order-only dependency from A to B which is created by add-all-target-to-target-required-modules-deps. Unfortunately, overridden isn't take into account here. So, if the jacoco jar file depends on modules_to_install, both B and C are installed. And if the creation of system.img happens later, the two are included together, which is an error. A preferred way of fixing this is to amend add-all-target-to-target-required-modules-deps so that override is take into account. However, it will likely to require more Make tricks. This change takes a much easier path; pruning the fake packages from the dependencies so that its dependencies which might be wrong can't be installed. Bug: 175400393 Test: build/soong/soong_ui.bash --make-mode SKIP_ABI_CHECKS=true SOONG_COLLECT_JAVA_DEPS=true TARGET_PRODUCT=cf_x86_phone TARGET_BUILD_VARIANT=userdebug TARGET_USERDATAIMAGE_PARTITION_SIZE=17179869184 droid dist DIST_DIR=out/dist EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS="*" NATIVE_COVERAGE_EXCLUDE_PATHS="art bionic/libc device" continuous_instrumentation_tests continuous_native_tests device-tests platform_tests No com.android.art.apex in system.img Change-Id: Ie8a917b7c3985c3a4f19372a4430accd84124e83
Loading
Please register or sign in to comment