OSDN Git Service

ART: Allow method references across oat files for multi-image, 2nd attempt.
authorVladimir Marko <vmarko@google.com>
Fri, 19 Feb 2016 12:27:55 +0000 (12:27 +0000)
committerVladimir Marko <vmarko@google.com>
Wed, 24 Feb 2016 11:19:23 +0000 (11:19 +0000)
commit944da603cde59a4277f3bbc31d860a90842a1a2a
tree733bc38a905822097a6a601a1de20b49f54440d3
parent52d9c2f0c584877e9c7f9e859d8068b3a2ccb12f
ART: Allow method references across oat files for multi-image, 2nd attempt.

These were disabled because we didn't have sufficient
information about the multi-image layout when processing
link-time patches in OatWriter. This CL refactors the
ELF file creation so that the information is available.

Also clean up ImageWriter to use oat file indexes instead
of filenames and avoid reopening the oat file to retrieve
the checksum.

Change-Id: Icc7b528deca29da1e473c8f079521a36d6c4892f
38 files changed:
build/Android.gtest.mk
compiler/Android.mk
compiler/common_compiler_test.cc
compiler/dex/quick/quick_cfi_test.cc
compiler/dex/quick/x86/quick_assemble_x86_test.cc
compiler/driver/compiled_method_storage_test.cc
compiler/driver/compiler_driver.cc
compiler/driver/compiler_driver.h
compiler/elf_builder.h
compiler/elf_writer.h
compiler/elf_writer_quick.cc
compiler/image_test.cc
compiler/image_writer.cc
compiler/image_writer.h
compiler/jit/jit_compiler.cc
compiler/linker/arm/relative_patcher_arm_base.cc
compiler/linker/arm/relative_patcher_arm_base.h
compiler/linker/arm/relative_patcher_thumb2.cc
compiler/linker/arm/relative_patcher_thumb2.h
compiler/linker/arm64/relative_patcher_arm64.cc
compiler/linker/arm64/relative_patcher_arm64.h
compiler/linker/multi_oat_relative_patcher.cc [new file with mode: 0644]
compiler/linker/multi_oat_relative_patcher.h [new file with mode: 0644]
compiler/linker/multi_oat_relative_patcher_test.cc [new file with mode: 0644]
compiler/linker/relative_patcher.cc
compiler/linker/relative_patcher.h
compiler/linker/relative_patcher_test.h
compiler/linker/x86/relative_patcher_x86.h
compiler/linker/x86/relative_patcher_x86_base.cc
compiler/linker/x86/relative_patcher_x86_base.h
compiler/linker/x86_64/relative_patcher_x86_64.cc
compiler/linker/x86_64/relative_patcher_x86_64.h
compiler/oat_test.cc
compiler/oat_writer.cc
compiler/oat_writer.h
dex2oat/dex2oat.cc
oatdump/oatdump.cc
runtime/safe_map.h