diff options
author | Andreas Gampe <agampe@google.com> | 2018-02-27 20:17:18 -0800 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2018-03-01 08:47:44 -0800 |
commit | 5147749d1a7a6bf409c809b22f87071887074aa3 (patch) | |
tree | 797c4a84e694017198b42f491f7a9fe34582ada4 | |
parent | fc2fefcd835333b00322563e949b73eb13730f3c (diff) | |
download | build-5147749d1a7a6bf409c809b22f87071887074aa3.tar.gz |
Build: Add some dex2oat boot image error message
Typical failure case for boot image dex2oat is an inconsistent boot
classpath left over from incomplete build dependencies. Give advice
to run a top-level build.
Bug: 73749543
Test: m
Change-Id: I81c4ce9d02b2b360fe867b594d0a2b21c763e473
-rw-r--r-- | core/dex_preopt_libart_boot.mk | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk index 1fe779c17e..a5e7e881ad 100644 --- a/core/dex_preopt_libart_boot.mk +++ b/core/dex_preopt_libart_boot.mk @@ -81,6 +81,15 @@ else DEX2OAT_BOOT_IMAGE_LOG_TAGS := ANDROID_LOG_TAGS="*:v" endif +# An additional message to print on dex2oat failure. +DEX2OAT_FAILURE_MESSAGE := ERROR: Dex2oat failed to compile a boot image. +DEX2OAT_FAILURE_MESSAGE += It is likely that the boot classpath is inconsistent. +ifeq ($(ONE_SHOT_MAKEFILE),) + DEX2OAT_FAILURE_MESSAGE += Rebuild with ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" to see verification errors. +else + DEX2OAT_FAILURE_MESSAGE += Build with m, mma, or mmma instead of mm or mmm to remedy the situation. +endif + $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_BOOT_IMAGE_FLAGS := $(my_boot_image_flags) $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_2ND_ARCH_VAR_PREFIX := $(my_2nd_arch_prefix) $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_IMAGE_LOCATION := $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_LOCATION) @@ -111,7 +120,8 @@ $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGE --multi-image --no-inline-from=core-oj.jar \ --abort-on-hard-verifier-error \ --abort-on-soft-verifier-error \ - $(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(GLOBAL_DEXPREOPT_FLAGS) $(ART_BOOT_IMAGE_EXTRA_ARGS) && \ + $(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(GLOBAL_DEXPREOPT_FLAGS) $(ART_BOOT_IMAGE_EXTRA_ARGS) \ + || ( echo "$(DEX2OAT_FAILURE_MESSAGE)" ; false ) && \ $(DEX2OAT_BOOT_IMAGE_LOG_TAGS) ANDROID_ROOT=$(PRODUCT_OUT)/system ANDROID_DATA=$(dir $@) $(PATCHOAT) \ --input-image-location=$(PRIVATE_IMAGE_LOCATION) \ --output-image-relocation-directory=$(dir $@) \ |