2fdd03c982386e1d13aed9f1b51e1f0eee237971 |
|
10-Mar-2016 |
David Srbecky <dsrbecky@google.com> |
Add symbolizer option to generate debug information only. There is no need to copy the .rodata and .text sections since the consumers can get their data form the original ELF file. We mark those section as SHT_NOBITS instead, which is the standard way to create ELF file with separate debug information only. The new option is called --only-keep-debug and it essentially has the same effect as --only-keep-debug option for "strip" command. Change-Id: I4f7488c04bbad86288beeda11c3bf295890e740d
|
197160d47f34238cb5e7444fa4c2de300db8e2c6 |
|
07-Mar-2016 |
David Srbecky <dsrbecky@google.com> |
Refactor MethodDebugInfo (input of DWARF writer). Do not pass CompiledMethod pointer through since it is only available during AOT compile but not during JIT compile or at runtime. Creating mock CompiledMethod just pass data is proving increasingly tricky, so copy the fields that we need to MethodDebugInfo instead. Change-Id: I820297b41e769fcac488c0ff2d2ea0492bb13ed8
|
316a2186b7fa9e03187d45ac0fa320f4dff1f3df |
|
18-Sep-2015 |
Douglas Leung <douglas.leung@imgtec.com> |
Add Mips abiflags section to the oatfile. Once this patch is merged, then the workaround patch: 0acb15ead6a554a6879b29fd90726b9ea8fd98c4 in bionic can be removed. Change-Id: Ie06a3c4e384a23a77db7d04a2508edbf3a6d3933
|
5d8112029d0e085c5a0099257daa4c7e29c12310 |
|
08-Mar-2016 |
David Srbecky <dsrbecky@google.com> |
Propagate InstructionSetFeatures to ElfBuilder. This is subset of CL171665 and it separates it into two. It will be needed to generate .MIPS.abiflags ELF section. Change-Id: I5557e7cb98d0fa1dc57c85cf6161e119c6d50a1a
|
944da603cde59a4277f3bbc31d860a90842a1a2a |
|
19-Feb-2016 |
Vladimir Marko <vmarko@google.com> |
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
|
45724f9a0cc38dbb3071beb3eeab96499868b49c |
|
17-Feb-2016 |
Vladimir Marko <vmarko@google.com> |
Revert "Allow method references across oat files for multi-image." Breaks Quick tests. This reverts commit 6065402316da2b51eed5fc34cffbd991766bd408. Change-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03
|
6065402316da2b51eed5fc34cffbd991766bd408 |
|
16-Feb-2016 |
Vladimir Marko <vmarko@google.com> |
Allow method references across oat files for multi-image. 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. Change-Id: I6f2e8dc8572d143c72cc2693bb0ba4fd76f889ab
|
ae5d2738a2b941b543c3fd478af910d4cd16f2ba |
|
05-Feb-2016 |
David Srbecky <dsrbecky@google.com> |
Change the method which generates DWARF mini-debug-info. This splits some code from CL198651. It moves the WriteSection call out one level and does not otherwise change behaviour. Change-Id: I7dc1c7c08b577b50bf6fa366a9b0ca757048b81e
|
579942fc26f8a0b0ff1d909d19086fca6d2396a3 |
|
28-Jan-2016 |
David Srbecky <dsrbecky@google.com> |
Reduce the size of native debug info generated by JIT. Remove some ELF file overheads: - Do not produce program headers. - Do not page align strtab. - Do not write oat_patches sections. This more than halves the size of JIT native debug info. Since we generate many small entries, the overheads added up. Change-Id: I27d95548c61e2e38c3683d6f5eb870a2db6e812d
|
5b1c2ca30dad519be285f0a1e839c23cc4e3a51d |
|
25-Jan-2016 |
David Srbecky <dsrbecky@google.com> |
Revert "Revert "Add option to generate compressed backtrace info."" This reverts commit 8546cc9aeb05e866e1fb6a9e4130d53ea330baa8. Change-Id: I676fdf9af27fa3b16fa8921778ff8832ab8c437d
|
8546cc9aeb05e866e1fb6a9e4130d53ea330baa8 |
|
25-Jan-2016 |
David Srbecky <dsrbecky@google.com> |
Revert "Add option to generate compressed backtrace info." This reverts commit 5fdcc3c931b70204fd8c491afa66f57f8428490f. Change-Id: I9c1f5aad6933a46af6717e3a90a51f76111f9c8a
|
5fdcc3c931b70204fd8c491afa66f57f8428490f |
|
19-Jan-2016 |
David Srbecky <dsrbecky@google.com> |
Add option to generate compressed backtrace info. Add flag --generate-mini-debug-info which generates LZMA compressed .symtab and .debug_frame, which are sufficient to print java backtraces in libunwind. If enabled, it increases the size of boot.oat by about 3.5%. Change-Id: Ic3c2ef7704c05fa328720c6781ca2a9b8e3935a3
|
9bdf108885a27ba05fae8501725649574d7c491b |
|
21-Jan-2016 |
Vladimir Marko <vmarko@google.com> |
Revert "Revert "Write dex files to oat file early."" This reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61. Fix linker error (Mac build): Replace inline definition of art::ZipArchive::~ZipArchive() with an out-of-line definition in zip_archive.cc to avoid direct reference to CloseArchive() from libart-compiler due to inlining. Note that libart is linked against -lziparchive but libart-compiler is not. Change-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8
|
919f5536182890d2e03f59b961acf8f7c836ff61 |
|
20-Jan-2016 |
Vladimir Marko <vmarko@google.com> |
Revert "Write dex files to oat file early." This reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5. Breaks the Mac build: Undefined symbols for architecture i386: "_CloseArchive", referenced from: ... in oat_writer.o ld: symbol(s) not found for architecture i386 Change-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e
|
625a64aad13905d8a2454bf3cc0e874487b110d5 |
|
26-Nov-2015 |
Vladimir Marko <vmarko@google.com> |
Write dex files to oat file early. Write dex files to oat file before we actually open and verify them. Instead, open and verify the copies from the oat file and use these. This way, in the most common case of zipped dex files, we have mmapped dex files instead of inflated dex files. That reduces the number of dirty pages used by dex2oat. Reading /proc/self/statm after we write the oat file for a compilation of a certain large app on Nexus 5 AOSP build with -j1, three attempts before and after this CL gave before: 346061 189462 6269 26 0 140723 0 346189 189450 6269 26 0 140851 0 346061 189463 6269 26 0 140723 0 after: 346186 185808 23040 27 0 140468 0 346186 185819 23040 27 0 140468 0 346186 185822 23040 27 0 140468 0 These values are in pages (4KiB), so while the "size" (=VmSize) is essentially unchanged, the "resident" (=VmRSS) is over 14MiB less and the "shared" (i.e. backed by a file) is 65.5MiB more. That is, the amount of dirty non-pageable memory used is reduced by about 80MiB. The oat file format has changed slightly, the class offset table has been moved from the OatDexFile to its own section. This actually fixes the alignment of these offsets as they could have been unaligned previously, yet accessed as normal with significant performance impact if the kernel has to emulate the unaligned access (say, mips). Change-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a
|
5cc349f3dd578e974f78314c50b6a0267c23e591 |
|
18-Dec-2015 |
David Srbecky <dsrbecky@google.com> |
Report DWARF debug information for JITed code. Change-Id: Ia5b2133c54386932c76c22774cf3d2ae61e0925f
|
131980fc9aeb2b4d03480443e0fb494c76ce03a2 |
|
03-Dec-2015 |
Vladimir Marko <vmarko@google.com> |
Add ElfWriter::GetStream(). This will be used for writing the OatHeader which is currently oddly written through the .text stream. Also move the error delaying output stream out of the ElfBuilder<> to its own file and move all output stream files to compiler/linker/. Change-Id: I00db4e33ed80ac4757ec459946c7b5ae014a3a2e
|
10c13565474de2786aad7c2e79757ea250747a15 |
|
25-Nov-2015 |
Vladimir Marko <vmarko@google.com> |
Refactor oat file writing to give Dex2Oat more control. This is the first step towards writing dex files to oat file and mapping them from there for the actual AOT compilation. Change-Id: Icb0d27487eaf6ba3a66c157e695f9bdc5bb9cf9a
|
b851b49eee0a77720347a4f777c07d4531302655 |
|
11-Nov-2015 |
David Srbecky <dsrbecky@google.com> |
Stream DWARF debug section directly to disk. Change the structure so that the debug sections are written to disk as we go. There are still some temporary buffers, however, we no longer hold all of the data in memory before writing it. We can not avoid buffering of some things (e.g. .debug_str). Change-Id: Id4940cf10ae5b6f3cac7fb8d20197f0304079b92
|
4d247f7d9c0062689a3e59de816b6593ffba31a5 |
|
09-Nov-2015 |
David Srbecky <dsrbecky@google.com> |
Fix build: lint error in elf_builder.h Change-Id: I862bfe6c9a9f6ec3c16af2a720ce2ca75492e574
|
6d8c8f0344a706df651567387ede683ab3ec1b5f |
|
26-Oct-2015 |
David Srbecky <dsrbecky@google.com> |
Rewrite ElfBuilder to make streaming directly to file easier. The previous design required knowing all the sections and their sizes before even the first byte of the file was written. The new design allows sections to be written one by one without any knowledge of later sections. Furthermore, as soon as section is started, its virtual memory address is known, which removes the need for the various patching passes. The new ElfBuilder essentially tries to be a thin wrapper around OutputStream which keeps track where the various sections start/end and then writes their ELF headers. Change-Id: I817e7f3b41882e4e4b9b442cfe56e4ef2e26babd
|
07ddb6f713f8c919e6da7c4b473cfb3bacb7cf10 |
|
05-Nov-2015 |
Mathieu Chartier <mathieuc@google.com> |
Fix elf writer to properly handle empty text sections Previously, empty text sections caused an underflow in the oat file size. Added regression test. Bug: 22858531 Change-Id: I9391a3666ab04e32472a9776d5217fe1743417a9
|
19fcbda1c882a475205b2b14c7a485ce7b8e901b |
|
03-Nov-2015 |
David Srbecky <dsrbecky@google.com> |
Move .dynsym ELF section after .text The main purpose of the dynamic section is to describe where .text is and how large it is. It makes more sense to write this section once we actually know this information. Also write string sections (.dynstr and .strtab) before the corresponding symbol sections because the strings take more space. Neither of these changes is important now since we build the sections in memory first, but it is move towards streaming of the ELF file directly do disk. Due to alignment requirements, the move increases the oat file size by one page (4K) which is insignificant. Change-Id: I61cc9f934b031d26a3a1f6007b51315e1538e3eb
|
a26cb57f46fd3f27a930d9d688fe8670c1f24754 |
|
23-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
ART stack unwinding fixes for libunwind/gdb/lldb. 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
|
67a065368d66377781f9a937e2d9fdebeef3afef |
|
29-May-2015 |
David Srbecky <dsrbecky@google.com> |
Make some parts of ELF more (pointer) aligned. I am not aware of any problem at the moment, but better be safe than sorry. I have noticed that we align less when comparing our output with output of other tools. Bug: 20556771 Change-Id: I904e66f5b7776f64cc90ec2802ddb2c630b64d08
|
1a146bfddcac2194a35e3ba33c81bfdf96aad924 |
|
29-May-2015 |
David Srbecky <dsrbecky@google.com> |
Link .dynamic to .dynstr This is what the ELF specification says we should do. (see Figure 1-13: sh_link and sh_info Interpretation) Also make the entity size of string sections 0 (i.e. not a table). Size 1 makes some sense as well but it is not what other tools do. Bug: 20556771 Change-Id: I780ba2e13c09c33c143fca70b38a35f3b8528fb2
|
24981a1cd34404c95d822907c48058ef7d25a95a |
|
29-May-2015 |
David Srbecky <dsrbecky@google.com> |
Set correct size of PT_PHDR ELF segment. This is just a nit pick, I do not believe that having it too long could have caused any trouble since the correct number of elements is stored in ELF header and extra space was zero padded. Bug: 20556771 Change-Id: Ide56e6aa40f9b7175b55a830caf34c47e48213af
|
491a7fed21eb153965cee73ac77268ec340aaca2 |
|
28-May-2015 |
David Srbecky <dsrbecky@google.com> |
Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again). Change-Id: I8a3277835f22a23c31063eda9b7f1fdc9423a5b0
|
f8980875ef8fb0ce86be4ed2c0af7070f5ae9cfd |
|
22-May-2015 |
David Srbecky <dsrbecky@google.com> |
Split .oat_patches to multiple sections. .oat_patches section currently contains encoded patch locations for several other sections. Split it to several sections - one for each of the destination sections. For example, .text.oat_patches section contains patch locations for the .text section. This ensures that if we strip some the sections using standard tools, we strip the corresponding .oat_patches section as well. It also makes the overall design simpler. I should have done it this way in the first place. Since ApplyOatPatches has been simplified and uses unaligned memory access, this also fixes bug 21403573. Bug:20556771 Bug:21403573 Change-Id: Iae7c423911507b524eec500e8d61744046fcd3ba
|
41b175aba41c9365a1c53b8a1afbd17129c87c14 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 (cherry picked from commit 80afd02024d20e60b197d3adfbb43cc303cf29e0) Change-Id: I905257a21de90b5860ebe1e39563758f721eab82
|
80afd02024d20e60b197d3adfbb43cc303cf29e0 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 Change-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7
|
90688ae398123b7a6c3752935fab0ebbb86d64cb |
|
19-May-2015 |
David Srbecky <dsrbecky@google.com> |
Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write. Change-Id: I0d1b7f6ca18a992bb7619a08a2cb0ed538578410
|
033d745bb9412c9b546d29395cc9efbbb4fa306e |
|
30-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Add binary search table to .eh_frame_hdr The addresses in the search table must be relative to the start of .eh_frame_hdr which results in yet another pointer type to patch. I have moved the Patch method back to elf_writer_quick where it can be specialized to one of the three pointer types. The .eh_frame_hdr takes around 17% of .eh_frame now. Change-Id: I4770d1355ded6cdff9489c33380f6b06c4e3f9fe
|
b0a962c59699fb4d115fb159eeabbd2200c6f872 |
|
28-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Move .eh_frame to the end of ELF file. Move .eh_frame to the end together with other debug sections. This should make it easier to remove it using standard strip tools. Bug:20556771 Change-Id: I8303ccb053aee50d53fb193819d345c91f1e5b75
|
bc90fd09e09a845ae6ea0d84ad67560575a94142 |
|
22-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Major refactoring of ElfBuilder. Simplify ElfBuilder by removing duplicated or redundant code. Many of the repeated code patterns were replaced by just looping over the list of all sections. Methods Init() and Write() have been merged into one. The split between those was rather arbitrary, but it was there for a reason. It allowed creation of raw sections between the calls which may have depended on layout decisions done in Init(), but not in Write() (e.g. knowing of offset of .text). This has been replaced by more generic solution. All sections are asked about their size first and complete file layout is calculated. Then the sections are asked to write their content (potentially using the layout information). This should be pure refactoring CL - the compiler should produce bit for bit identical output as before. Change-Id: I281d13d469801bd8288b36b360d200d98a3e92d7
|
0c5bbc11a6af7b4f83b3929bc99de690635095c0 |
|
28-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Minor refactoring of ElfBuilder. * Nest section builder classes within the main builder class to reduce verbosity caused by templates. * Move .eh_frame and .eh_frame_hdr section headers earlier so that the section headers are sorted by file offset. * Do not emit PT_NULL header if .eh_frame_hdr is missing. None of these changes should have any material impact. This CL just prepares ground for the following CL. Change-Id: I56f9825892adb01d413a18ca10cb5c805cb8cd78
|
2cebb24bfc3247d3e9be138a3350106737455918 |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Replace NULL with nullptr Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
|
533c207f9d2da6d913c4b10f6f757fe9d6367b10 |
|
22-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Simplify template parameters of Elf classes. The ELF specification defines several types which differ between 32-bit ELF and 64-bit ELF. We used to template all ELF-related methods on all of those types which was very verbose. This CL wraps all the types as typedefs in ElfTypes32 and ElfTypes64. One of those wrappers is then used as the template parameter. Change-Id: I65247c2c79d92a7c4799e988cf3e4a1b10eb4788
|
527c9c71f0c6e2f9943ac028e7c050500699a44b |
|
17-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Generate .eh_frame_hdr section and PT_GNU_EH_FRAME segment. Fixes issue 20125400 - ART: Need .eh_frame_hdr and PT_GNU_EH_FRAME for libunwind. .eh_frame_hdr serves two purposes. Firstly, it can optionally contain binary search table for fast eh_frame lookup. This is important for C++ exception handling, but we do not need it so we omit it. Secondly, it contains a relative .eh_frame pointer which makes it easier for run-time code to locate the .eh_frame section. libunwind seems to rely on this relative pointer. Bug: 20125400 Change-Id: I7c1e3f68d914f70781404c508395831a3296a7da
|
758a801b66c134361a7b43f7e83f85d1fb800c4c |
|
04-Apr-2015 |
Andreas Gampe <agampe@google.com> |
ART: Enable Clang's -Wdeprecated Replace throw() with noexcept. Add default copy constructors and copy assignment constructors for cases with destructors, as the implicit definition is deprecated. Change-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d
|
5c42c29b89286e5efa4a4613132b09051ce5945b |
|
25-Feb-2015 |
Vladimir Marko <vmarko@google.com> |
Add support for .bss section in oat files. Change-Id: I779b80b8139d9afdc28373f8c68edff5df7726ce
|
57b34294758e9c00993913ebe43c7ee4698a5cc6 |
|
15-Jan-2015 |
Andreas Gampe <agampe@google.com> |
ART: Allow to compile interpret-only mips64 files Include enough infrastructure to allow cross-compiling for mips64, interpret-only. This includes the instruction-set-features, frame size info and utils assembler. Also add a disassembler for oatdump, and support in patchoat. Note: the runtime cannot run mips64, yet. Change-Id: Id106581fa76b478984741c62a8a03be0f370d992
|
d582fa4ea62083a7598dded5b82dc2198b3daac7 |
|
06-Nov-2014 |
Ian Rogers <irogers@google.com> |
Instruction set features for ARM64, MIPS and X86. Also, refactor how feature strings are handled so they are additive or subtractive. Make MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler rather than #ifdefs that wouldn't have worked in cross-compilation. Add SIMD features for x86/x86-64 proposed in: https://android-review.googlesource.com/#/c/112370/ Bug: 18056890 Change-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666
|
6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f |
|
31-Oct-2014 |
Ian Rogers <irogers@google.com> |
Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags. Fix associated errors about unused paramenters and implict sign conversions. For sign conversion this was largely in the area of enums, so add ostream operators for the effected enums and fix tools/generate-operator-out.py. Tidy arena allocation code and arena allocated data types, rather than fixing new and delete operators. Remove dead code. Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
|
0279ebb3efd653e6bb255470c99d26949c7bcd95 |
|
09-Oct-2014 |
Ian Rogers <irogers@google.com> |
Tidy ELF builder. Don't do "if (ptr)". Use const. Use DISALLOW_COPY_AND_ASSIGN. Avoid public member variables. Move ValueObject to base and use in ELF builder. Tidy VectorOutputStream to not use non-const reference arguments. Change-Id: I2c727c3fc61769c3726de7cfb68b2d6eb4477e53
|
62d1ca3182a6cbb921799825f43ad36821233fd7 |
|
04-Sep-2014 |
Tong Shen <endlessroad@google.com> |
ART: Prepare for ELF64. Only expose necessary interface in ElfFile, and move all details into template class ElfFileImpl. Change-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74
|
f4da675bbc4615c5f854c81964cac9dd1153baea |
|
01-Aug-2014 |
Vladimir Marko <vmarko@google.com> |
Implement method calls using relative BL on ARM. Store the linker patches with each CompiledMethod instead of keeping them in CompilerDriver. Reorganize oat file creation to apply the patches as we're writing the method code. Add framework for platform-specific relative call patches in the OatWriter. Implement relative call patches for ARM. Change-Id: Ie2effb3d92b61ac8f356140eba09dc37d62290f8
|
cc67607798dbf978af00988ea2d9683c3e01cb63 |
|
24-Sep-2014 |
Andreas Gampe <agampe@google.com> |
ART: Refactor elf_writer_quick for elf section order This writes ELF sections in approximate order (debug sections are currently out-of-order) to avoid incompletely written files appearing OK to ART loading code. Bug: 17622827 (cherry picked from commit 3c5ec99e156632a734c2359642ae928102850597) Change-Id: I812fd42fcf2823dbfaf5891bf101d3b59406f263
|
54fc26c7350beb782d042ba61cb06284b3a367e4 |
|
05-Sep-2014 |
Andreas Gampe <agampe@google.com> |
ART: Refactor elf_writer_quick, add symbolizer Refactors some classes in elf_writer_quick.h to elf_builder.h to be more friendly for re-use. Use this in oatdump to add a symtab to an oat file. Bug: 17187621, 17322125 Change-Id: I2333291334fd98bd09cc5717fb83cb18efe3a029
|