summaryrefslogtreecommitdiffstats
path: root/runtime/oat_file.cc
Commit message (Collapse)AuthorAgeFilesLines
* ART stack unwinding fixes for libunwind/gdb/lldb.David Srbecky2015-06-191-3/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dex2oat can already generate unwinding and symbol information which allows tools to create backtrace of mixed native and Java code. This is a cherry pick from aosp/master which fixes several issues. Most notably: * It enables generation of ELF-64 on 64-bit systems (in dex2oat, C compilers already produce ELF-64). Libunwind requires ELF-64 on 64-bit systems for backtraces to work. * It enables loading of ELF files with dlopen. This is required for libunwind to be able to generate backtrace of current process (i.e. the process requesting backtrace of itself). * It adds unit test to test the above (32 vs 64 bit, in-proces vs out-of-process, application code vs framework code). * Some other fixes or clean-ups which should not be of much significance but which are easier to include to make the important CLs cherry-pick cleanly. This is squash of the following commits from aosp/master: 7381010 ART: CFI Test e1bbed2 ART: Blacklist CFI test for non-compiled run-tests aab9f73 ART: Blacklist CFI test for JIT 4437219 ART: Blacklist CFI test for Heap Poisoning a3a49fe Switch to using ELF-64 for 64-bit architectures. 297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture. 24981a1 Set correct size of PT_PHDR ELF segment. 1a146bf Link .dynamic to .dynstr 67a0653 Make some parts of ELF more (pointer) aligned. f50fa82 Enable 64-bit CFI tests. 49e1fab Use dlopen to load oat files. 5dedb80 Add more logging output for dlopen. aa03870 Find the dlopened file using address rather than file path. 82e73dc Release dummy MemMaps corresponding to dlopen. 5c40961 Test that we can unwind framework code. 020c543 Add more log output to the CFI test. 88da3b0 ART: Fix CFI test wrt/ PIC a70e5b9 CFI test: kill the other process in native code. ad5fa8c Support generation of CFI in .debug_frame format. 90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write. 97dabb7 Fix build breakage in dwarf_test. 388d286 Generate just single ARM mapping symbol. f898087 Split .oat_patches to multiple sections. 491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again). 8363c77 Add --generate-debug-info flag and remove the other two flags. 461d72a Generate debug info for core.oat files. Bug: 21924613 Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
* Move mirror::ArtMethod to nativeMathieu Chartier2015-06-021-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 (cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d Fix some ArtMethod related bugs Added root visiting for runtime methods, not currently required since the GcRoots in these methods are null. Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes --trace run-tests 005, 044. Fixed optimizing compiler bug where we used a normal stack location instead of double on ARM64, this fixes the debuggable tests. TODO: Fix JDWP tests. Bug: 19264997 Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3 ART: Fix casts for 64-bit pointers on 32-bit compiler. Bug: 19264997 Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457 Fix JDWP tests after ArtMethod change Fixes Throwable::GetStackDepth for exception event detection after internal stack trace representation change. Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of proxy method. Bug: 19264997 Change-Id: I363e293796848c3ec491c963813f62d868da44d2 Fix accidental IMT and root marking regression Was always using the conflict trampoline. Also included fix for regression in GC time caused by extra roots. Most of the regression was IMT. Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to detached thread. EvaluateAndApplyChanges: From ~2500 -> ~1980 GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots Bug: 19264997 Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0 Fix bogus image test assert Previously we were comparing the size of the non moving space to size of the image file. Now we properly compare the size of the image space against the size of the image file. Bug: 19264997 Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a [MIPS64] Fix art_quick_invoke_stub argument offsets. ArtMethod reference's size got bigger, so we need to move other args and leave enough space for ArtMethod* and 'this' pointer. This fixes mips64 boot. Bug: 19264997 Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
* Fix debuggable compiler flag detection for secondary dex filesSebastien Hertz2015-05-191-0/+4
| | | | | | | | | | | | | | | | | | Compiles secondary dex files like the primary dex file: if it has been compiled with the --debuggable flag, compile secondary dex files with the --debuggable flag too. Therefore, dex files loaded at runtime are compiled the same way as dex files compiled at install time on the classpath (excluding the boot image that is not compiled debuggable). Also adds debuggable key in the oat header and bump the oat version. Bug: 20944228 (cherry picked from commit 0de1133ba600f299b3d67938f650720d9f859eb2) Change-Id: If6b2236e7fe547cc421f57b573043748018d3ae0
* Replace NULL with nullptrMathieu Chartier2015-04-221-3/+3
| | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* ART: Re-add dlopenAndreas Gampe2015-04-171-13/+123
| | | | | | | | | | | | | Re-add an oat-file path that uses dlopen to load oat files. This code-path will be necessary to support libunwind unwinding through properly CFI-annotated oat files, as libunwind consults the linker about loaded ELF files. We avoid the original dlopen issue, namely that the semantics of dlopen disallow loading the same soname twice, by using an extension of bionic that supersedes the specified behavior. Change-Id: I4a7e3cb00d1ea156dad84f76826def2a5967c9ca
* ART: Store classpath information into oat fileAndreas Gampe2015-04-141-0/+87
| | | | | | | | | | | Store a "dependency list" of class-path dex-files into the key-value store of an oat file. The list is made up of dex locations and corresponding checksums. Add tests for encoding, decoding and checking the list. Bug: 19781184 Change-Id: Ie700dd37e6e086db599c95d329ac1f1d2ff0b758
* Store OatDexFile instead of OatFile in DexFile.Richard Uhler2015-04-021-7/+7
| | | | | | | | This requires moving OatDexFile out of the OatFile class so that a forward class declaration can be used for OatDexFile. Bug: 19071355 Change-Id: Ibda85b78d0577e9e81073090616fc0f2fa526be3
* Support relative encoded dex locations in oat files.Richard Uhler2015-03-241-11/+42
| | | | | | | | | Now when opening an oat file, the caller can pass an absolute dex location used to resolve the absolute path for any relative encoded dex locations in the oat file. Bug: 19550105 Change-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7
* Add support for .bss section in oat files.Vladimir Marko2015-03-021-62/+28
| | | | Change-Id: I779b80b8139d9afdc28373f8c68edff5df7726ce
* Merge "ART: Print maps directly to log"Andreas Gampe2015-02-251-4/+4
|\
| * ART: Print maps directly to logAndreas Gampe2015-02-241-4/+4
| | | | | | | | | | | | | | | | | | | | Do not read proc maps into a string before printing them later back to the log. In low-memory situations this can cause a bad_alloc. External bug: http://b.android.com/153990 Bug: 19494774 Change-Id: Ie63d8788afe8c9da65b30b2f89c50d3dbb820755
* | Revert "Revert "Add JIT""Mathieu Chartier2015-02-241-4/+4
| | | | | | | | | | | | | | | | Added missing EntryPointToCodePointer. This reverts commit a5ca888d715cd0c6c421313211caa1928be3e399. Change-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af
* | Revert "Add JIT"Nicolas Geoffray2015-02-241-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorry, run-test crashes on target: 0-05 12:15:51.633 I/DEBUG (27995): Abort message: 'art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast<uintptr_t>(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc=71e3366b code=0x71e3362d size=ad000000' 10-05 12:15:51.633 I/DEBUG (27995): r0 00000000 r1 0000542b r2 00000006 r3 00000000 10-05 12:15:51.633 I/DEBUG (27995): r4 00000006 r5 b6f9addc r6 00000002 r7 0000010c 10-05 12:15:51.633 I/DEBUG (27995): r8 b63fe1e8 r9 be8e1418 sl b6427400 fp b63fcce0 10-05 12:15:51.633 I/DEBUG (27995): ip 0000542b sp be8e1358 lr b6e9a27b pc b6e9c280 cpsr 40070010 10-05 12:15:51.633 I/DEBUG (27995): Bug: 17950037 This reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4. Change-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3
* | Add JITMathieu Chartier2015-02-231-4/+4
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently disabled by default unless -Xjit is passed in. The proposed JIT is a method JIT which works by utilizing interpreter instrumentation to request compilation of hot methods async during runtime. JIT options: -Xjit / -Xnojit -Xjitcodecachesize:N -Xjitthreshold:integervalue The JIT has a shared copy of a compiler driver which is accessed by worker threads to compile individual methods. Added JIT code cache and data cache, currently sized at 2 MB capacity by default. Most apps will only fill a small fraction of this cache however. Added support to the compiler for compiling interpreter quickened byte codes. Added test target ART_TEST_JIT=TRUE and --jit for run-test. TODO: Clean up code cache. Delete compiled methods after they are added to code cache. Add more optimizations related to runtime checks e.g. direct pointers for invokes. Add method recompilation. Move instrumentation to DexFile to improve performance and reduce memory usage. Bug: 17950037 Change-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca
* ART: Simple structural class checkAndreas Gampe2015-01-141-1/+1
| | | | | | | | | | | | | | | | | | | Adds a simple check to class-loading when the embedded dex file in an oat file and the dex file on the class path where we found the class do not match. We require that the number of methods and fields do not change, as that will almost certainly mean that quickened and other compiled offsets are wrong now. This is a reasonably lightweight change, but we should investigate a full comparison including name and type of members. Bug: 17937814 Bug: 18708951 (cherry picked from commit 15a33b3f88546bce85dcb9d28caf200da51154d7) Change-Id: Icb9638bebd369ab23822817f4a97c8dd8625fea5
* Use unique_ptr to track ownership of dex files.Richard Uhler2015-01-131-1/+1
| | | | | Bug: 18809837 Change-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a
* ART: Show invalid oat header cause in error messageAndreas Gampe2014-12-151-1/+3
| | | | | | | | | | | Include the IsValid failure cause in the error message of opening an oat file. Make oat magic and version constexpr so we can have static_asserts over the lengths. Bug: 17187621 Change-Id: I8cef1c6cc9cb2faa052167a3437e81b4c2cbefa7
* Remove portable.Elliott Hughes2014-12-121-26/+19
| | | | Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc
* Delete ArtMethod gc_map_ fieldMathieu Chartier2014-11-241-7/+3
| | | | | | | | | | | Moved the gc_map field from OatMethod to OatQuickMethodHeader. Deleted the ArtMethod gc_map_ field. Bug: 17643507 Change-Id: Ifa0470c3e4c2f8a319744464d94c6838b76b3d48 (cherry picked from commit 807140048f82a2b87ee5bcf337f23b6a3d1d5269)
* Remove double space in messagesBrian Carlstrom2014-10-281-4/+4
| | | | Change-Id: I3adcb8a13c8d0468cb700a1195aecfc0fd94dcbb
* ART: Add support for patching and loading OAT files compiled with PICIgor Murashkin2014-10-271-8/+14
| | | | | | | | | | | | * Images (.art) compiled with pic now have a new field added. * isDexOptNeeded will now skip patch-ing for apps compiled PIC * First-boot patching now only copies boot.art, boot.oat is linked As a result, all system preopted dex files (with --compile-pic) no longer take up any space in /data/dalvik-cache/<isa>. Bug: 18035729 Change-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62
* ART: Add pic flag to oat header storeAndreas Gampe2014-10-271-1/+7
| | | | | | | Add the compile-time PIC flag to the oat-header key-value store. Ignore image offset and patch delta when loading PIC oat files. Change-Id: Ie1f1ef37125386a968228033d1e2bec565315510
* stdint types all the way!Ian Rogers2014-10-091-17/+17
| | | | Change-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08
* ART: Prepare for ELF64.Tong Shen2014-10-031-3/+5
| | | | | | Only expose necessary interface in ElfFile, and move all details into template class ElfFileImpl. Change-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74
* Avoid printing absolute addresses in oatdumpBrian Carlstrom2014-09-161-22/+31
| | | | | | | | | | | | | | | | | - Added printing of OatClass offsets. - Added printing of OatMethod offsets. - Added bounds checks for code size size, code size, mapping table, gc map, vmap table. - Added sanity check of 100k for code size. - Added partial disassembly of questionable code. - Added --no-disassemble to disable disassembly. - Added --no-dump:vmap to disable vmap dumping. - Reordered OatMethod info to be in file order. Bug: 15567083 (cherry picked from commit 34fa79ece5b3a1940d412cd94dbdcc4225aae72f) Change-Id: I2c368f3b81af53b735149a866f3e491c9ac33fb8
* ART: Do not unlink unreadable ELF filesAndreas Gampe2014-09-151-7/+3
| | | | | | | | | | Unlinking can be racy with respect to secondary oat files. Bug: 17496483 (cherry picked from commit 00503dad8139dcf7b7fc7986ace93e3e45198096) Change-Id: I53f92a924b34dfcf50d7e02487c5f8f23de627ca
* ART: Make elf loading not abortAndreas Gampe2014-09-151-0/+9
| | | | | | | | | | | | | | Changes elf_file code to use less CHECKs and instead return error values (usually nullptr). This avoids aborts. In oat_file, when loading an oat file fails, try to unlink at. If this succeeds, on the next run we may compile again. Bug: 17491333 (cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a) Change-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af
* Improve dex location canonicalization-related performance.Vladimir Marko2014-09-101-28/+27
| | | | | | | | | | | | | | | | | | | Eagerly add canonical dex file locations to the OatFile's primary lookup map in Setup(). This moves the boot.oat work from every app startup to the zygote initialization. Since we always ended up initializing the canonical location map anyway due to the way that we're loading dex files, the lazy initialization didn't save anything. Clean up dex file name canonicalization to make sure we free() the memory returned by realpath() rather than using std::unique_ptr<> with the default deleter. Avoid some unnecessary duplicate OatDexFile lookups. Bug: 16828525 Bug: 17346103 Change-Id: Id8fbc8992f62996138eb2006a0046c6529747c09
* Support booting without functioning boot.oat/art patchoat.Alex Light2014-08-261-0/+12
| | | | | | Bug: 17000769 Change-Id: I89c26a905af12ea288742368c2c038afd57a879a
* Fix bug introduced in https://android-review.googlesource.com/102610.Nicolas Geoffray2014-08-201-1/+3
| | | | | | Also make oatdump work again. Change-Id: Iab96971645f40585bc04769d410f2273d3977f51
* Make apps able to run with a failing patchoatAlex Light2014-08-191-9/+15
| | | | | | Bug: 17000769 Change-Id: I0a1a4dc7f5d4bb268530840302ecfb1555231e05
* Make OatClass and OatMethod immutable once more.Ian Rogers2014-08-141-20/+13
| | | | | | | OatClass and OatMethod are representation of disk data and we don't want the runtime to mutate this. Change-Id: Id5b8658fd544f5d6e1b9120af134d3644ff1a52c
* Fix performance regression in OatFile::GetOatDexFile().Vladimir Marko2014-08-081-20/+56
| | | | | | | | | | Try to avoid calculating the canonical location of the dex file if possible and when we have to calculate it, cache the lookup result for subsequent lookups. Bug: 16828525 Bug: 16859671 Change-Id: I0f03007ba5adf08656615900cf125075a3f2c541
* Use canonical paths when searching for dex filesCalin Juravle2014-08-041-3/+18
| | | | | | | | | | | | Apps which use the DexPathClassLoader directly may pass symlinks when trying to load dex files. This will not work as we use string comparision to find the dex in an oat file. The CL fixes this issue by using using dex conical paths for comparisons. Bug: 15313272 Change-Id: Ic314374b17612c3afbcadec93a88b2515a0aca5e
* Runtime can now be set to require relocationAlex Light2014-07-221-0/+5
| | | | | | | | | | | | | | Add a pair of runtime flags -Xrelocate and -Xnorelocate that can force the runtime to require that all files that are run are relocated, to prevent attacks based on the known art base address. Add support for running patchoat on oat files compiled without an image. Change run-test to have new --prebuild and --relocate flags. Bug: 15358152 Change-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d
* Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""Dave Allison2014-07-161-31/+1
| | | | | | | This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1. Bug: 16256184 Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73
* Revert "Revert "ART: Key-Value Store in Oat header""Andreas Gampe2014-07-111-17/+50
| | | | | | | | | | | This reverts commit 452bee5da9811f62123978e142bd67b385e9ff82. Heap-allocate a couple of objects in dex2oat to avoid large frame size. Includes fixes originally in 100596 and 100605. Change-Id: Id51a44198c973c91f0a3f87b9d992a5dc110c6f8
* Revert "ART: Key-Value Store in Oat header"Nicolas Geoffray2014-07-091-63/+17
| | | | | | | | Broke arm64 build. This reverts commit c87d27b25994da8670d82a8f7bad6327b693bfff. Change-Id: I4c2ade295d2b5aa77fc3ad810e0e859629a5bf09
* ART: Key-Value Store in Oat headerAndreas Gampe2014-07-081-17/+63
| | | | | | | | | | | Allows the storage of string-string pairs in the oat header. The first significant use of this is storing the implicit-check flags, so that an oat file can be rejected if it doesn't agree with the current runtime. Bump the oat version as the header structure changes. Change-Id: I15a1c16886e6b8fa7b881c918c19c1efa5c7c00f
* Avoid a memory allocation in OatFile::GetOatDexFile().Vladimir Marko2014-06-051-5/+8
| | | | | | Use StringPiece instead of std::string as the map key. Change-Id: I05516d273de617a7d714e39ce6c4236cec6a09f7
* Now we have a proper C++ library, use std::unique_ptr.Ian Rogers2014-05-191-4/+4
| | | | | | | Also remove the Android.libcxx.mk and other bits of stlport compatibility mechanics. Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
* Add ISA directory to image and odex pathnames.Brian Carlstrom2014-05-161-11/+0
| | | | | | Bug: 14882223 Bug: 14694978 Change-Id: Ic1b5ae836b8e91ea461dcd4f3da8e38dc3bec00f
* Move quick frame info to OatQuickMethodHeader.Vladimir Marko2014-05-131-14/+2
| | | | | | | | | | | | | | | Rename OatMethodHeader to OatQuickMethodHeader, move frame info from OatMethodOffsets to OatQuickMethodHeader. Retrieve the info from other places for non-quick methods (portable compiled bytecode or jni stub, generic jni, runtime, abstract and proxy). This change has a libcore/ companion CL "Remove ArtMethod's quick fields for frame size and spills." https://android-review.googlesource.com/94164 Bug: 11767815 Change-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f
* Move mapping table and vmap table offsets to OatMethodHeader.Vladimir Marko2014-04-251-25/+2
| | | | | | | | | This change has a libcore/ companion CL "Remove ArtMethod's quick fields mapping table and vmap table." https://android-review.googlesource.com/91254 Bug: 11767815 Change-Id: I46ce2067e1ecd915da3890606498e31ffc332813
* Avoid allocating OatFile::OatClass on the heap.Vladimir Marko2014-04-141-19/+13
| | | | | | | | | | Avoid allocating a BitVector for OatFile::OatClass::bitmap_ with kOatClassSomeCompiled methods. That makes the OatClass copy-constructible as it doesn't own any memory. We use that in OatFile::OatDexFile::GetOatClass() to return the result by value thus avoiding one or two heap allocations per call. Change-Id: Ic7098109028a5b49e39ef626f877de86e732ed18
* Fix some < vs <= issues in OatFileBrian Carlstrom2014-03-041-8/+16
| | | | Change-Id: I86c7eb182f7ebd57790d77b9abbcdf39a8b18e2f
* Create CompilerOptionsBrian Carlstrom2014-02-241-0/+1
| | | | | | | | | | | | | | | | | | Package up most compiler related options in CompilerOptions. Details include: - Includes compiler filter, method thresholds, SEA IR mode. - Excludes those needed during Runtime::Init such as CompilerCallbacks and VerificationResults. - Pass CompilerOptions to CompilerDriver. - Remove CompilerOptions from Runtime. - Add ability to pass options for app and image dex2oat to runtime via -Xcompiler-option and -Ximage-compiler-option respectively. Other - Replace 2x CompilerCallbacks implementations with one. - Factor out execv code for use by both image and oat generation. - More OatFile error_msg reporting. - DCHECK for SuspendAll found trying to run valgrind. Change-Id: Iecb57da907be0c856d00c3cd634b5042a229e620
* art: dex offset fix in oat_file.cc for x86_64Dmitry Petrochenko2014-02-111-1/+1
| | | | | | | Avoid wrong offset calculation when compiled for x86_64 Change-Id: Ic58335657e55b05372afcdce2f21102057d39303 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* Object model changes to support 64bit.Ian Rogers2014-02-061-36/+25
| | | | | | | | | | | | | | | | | | | | | | | Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
* Fix apps with more than one dex file with the same nameBrian Carlstrom2014-02-061-2/+7
| | | | | | | | | | | | Reverts most of 60836d5a9bcf8b30984aae4279a4f6233b0bf622 which I believe was an incorrect attempt to address issue introduced in 8d31bbd3d6536de12bc20e3d29cfe03fe848f9da, which is also reverted here. Also adds some debugging aids include operator<< for DexFile and MemMap and checksum information to OatFile logging. Bug: 12802375 Change-Id: Idd6f7dd487f6e01e9479cd15cd4b61580160e8a3