History log of /art/build/Android.oat.mk
Revision Date Author Comments
dcdc85bbd569f0ee66c331b4219c19304a616214 04-Dec-2015 Jeff Hao <jeffhao@google.com> Dex2oat support for multiple oat file and image file outputs.

Multiple changes to dex2oat and the runtime to support a --multi-image
option. This generates a separate oat file and image file output for
each dex file input.

Change-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129
c5d29059e2b586697aef87a859b76929c5636400 18-Dec-2015 Shinichiro Hamaji <hamaji@google.com> Do not use $? in recipe

Kati cannot support this automatic variable as ninja doesn't
have a feature for this.

Change-Id: Ie9130c31916954454eb201129ae6f49554453586
c13f13ad91b177c7446edf990fa67e6854f147ca 06-Oct-2015 Nicolas Geoffray <ngeoffray@google.com> Fix another Makefile typo.

Change-Id: I4a4a81255c3bef47c92c127e66c2ccd8b199e51d
7701d10fedc2b143b048f0cfeb0911edb1cf46b8 05-Oct-2015 Nicolas Geoffray <ngeoffray@google.com> Fix typo from previous commit.

core_dex2oat_dependency has a '|' dependency, so we should do :=
instead of += to force recompilation of the image.

Change-Id: Ic59b86666fa69038a67459e7be11c57c20bf815b
409e80901468f6c746eeae5c6e93ceedf1d8c711 01-Oct-2015 Nicolas Geoffray <ngeoffray@google.com> Don't force the boot image to using quick.

Instead, put the debuggable flag.

Also, remove obsolete ART_USE_OPTIMIZING_COMPILER environment
variable.

Change-Id: Idde00da0d063aa461faa0308134f3b420de9fe0a
8a159fdc17d478b2a3e49705045e51ab19842a34 22-Sep-2015 Andreas Gampe <agampe@google.com> ART: Use JIT image for JIT run tests

Don't use interpreter image anymore. That was a stop-gap measure.

Change-Id: If4b43bc20026b1ed89e59690fe35771746e354e6
4d2ef33723c1d7df269ee82cdfac98e59d95b53d 05-Aug-2015 Andreas Gampe <agampe@google.com> ART: Extend ISA features option for (host) run tests

To allow to test advanced intrinsics only available on (fairly)
modern processors, and because our build requirements are still
too low to enable them in the build system, pipe through the
existing make variables to the run-tests to allow to override
the dex2oat autodetection scheme.

Usage (standalone run-test): use the new --instruction-set-features
command line parameter to set the value for dex2oat (in the prebuild
configuration) or as an -Xcompiler-option (for no-prebuild). Note:
this is general and also works for target tests.

Usage (through make): set DEX2OAT_HOST_INSTRUCTION_SET_FEATURES and
2ND_DEX2OAT_HOST_INSTRUCTION_SET_FEATURES to set instruction set
features, as was possible before for the compilation of core files.
This option is now forwarded to host run-tests.

Change-Id: I9d89c82b6a5c8853748e5d1c153dde5d4050757a
825570c844b447beabfc7497d04fbd61c69cf28b 26-Jul-2015 Andreas Gampe <agampe@google.com> ART: Abbreviate interpreter-access-checks

Tag is too long.

Change-Id: I49febb97cec1172bcf06438fe8e0605f266e3fde
7617abdb402fd0419daa3eefb2ad059ccbb8b6db 11-Jul-2015 Igor Murashkin <iam@google.com> runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS

Use ART_TEST_INTERPRETER_ACCESS_CHECKS=true to run all the tests through
the interpreter with access checks enabled. The normal interpreter tests
do not currently enable access checks, which means that a large part of
the interpreter codebase is untested.

The verifier will force every class into a soft fail mode if
-Xverify:softfail is used, thereby ensuring that if used along with the
interpreter (-Xint) that the interpret is always in access checks mode.

This is used alongside with --compile-filter=verify-at-runtime to
prevent the AOT compiler from putting down any code.

Change-Id: I35a10ed8c43d76fa96133cf01fdad497da387200
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
461d72a0be54129882f0c43ee8b50091366f1ede 11-Jun-2015 David Srbecky <dsrbecky@google.com> Generate debug info for core.oat files.

The debug info is needed for CFI unwinding tests.

I am adding this as part of investigating build bot failure,
I suspect the it might not be generating the debug info by default.

Change-Id: Ic0cdda345355161d44949308d6d70ff59542cc1e
3d12eadf67e263ebc7e533f8daa65029feb41313 18-Mar-2015 Douglas Leung <douglas.leung@imgtec.com> ART: Change the isa defaults for Mips

Select the correct cpu variant for ART and select the default
features based on compile flags for when the variant is not
defined.

Change-Id: I13622db85446ed6fbb467a699d8d3e27833f6f88
e2a12c0504cdd75e27c9c6567ceebdc124d344d6 27-Feb-2015 Mathieu Chartier <mathieuc@google.com> Change JIT tests to use interpreter image

Bug: 19528920
Change-Id: I079cfcca7bb57e492c82a44f104e41228cb33b4f
721f3a817884c1c4cf30cea2bbb337738745a74d 27-Feb-2015 Mathieu Chartier <mathieuc@google.com> Fix jit tests

Missing image suffix was missing causing tests to fail.
Also added missing phony targets.

Bug: 19524713
Change-Id: Ib40d39b1fc16e1adfdc01744a199ae9b0b562664
3fc1b12a2308e39a0c9b1cdcf4eb0b5770081e51 26-Feb-2015 Mathieu Chartier <mathieuc@google.com> Add missing JIT stuff in make files

Was causing core.oat to not be created.

Bug: 19524713
Change-Id: I5da005fd36f9682623fdda9931280997b59c2681
6427df118e2c31962d3b8afc4231c9c3d430ad9c 17-Dec-2014 Nicolas Geoffray <ngeoffray@google.com> Explicitly compile core.oat with the Quick compiler.

Change-Id: Id9e301268a75f6002855c690c9324bbcbee3ed6e
010cf9112eece1a1264f0a1191c5ff388316fb02 04-Dec-2014 Serban Constantinescu <serban.constantinescu@arm.com> ARM64: Enable Optimizing compiler image generation.

Enable Optimizing Compiler image generation for ARM64.

Change-Id: If28426920f8887a3f78cb8c69bc8c1293131b85d
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
5e4d513eee15211985b3a711fb689b964f48b39f 04-Dec-2014 Nicolas Geoffray <ngeoffray@google.com> On arm64/optimizing, compile the boot image with interpreter.

Oterhwise the tests will fail because the backend is not fully
implemented yet.

Change-Id: I9dbd45279c7e515b52656825e1d4be92961b0da6
5d672a682637882743bab12c2c842f5c0ffb77c6 04-Dec-2014 Nicolas Geoffray <ngeoffray@google.com> Build core.oat without flags.

Existing tools (like vogar) assume only one boot image, so to test the
boot image compiled with the optimizing compiler, we have to compile
core.oat with it.

Change-Id: I4b55236163333709b05c80eea18778ecd2b58a91
088b16e202904114c0fe13900e517b1c15c981c1 04-Dec-2014 Andreas Gampe <agampe@google.com> ART: Wire up a valgrind-wrapped dex2oat run

Extend build-art-executable to understand multilib=both, in which
case a stem is necessary. Use name32 for the 32b version, and name
for the 64b version (or only version).

Create both 32b and 64b dex2oat on the host.

Extend the core generation rules to allow a wrapper. Create rules
to run with valgrind: valgrind-test-art-host-dex2oat.

Currently this is not wired up to valgrind-test-art-host, as valgrind
reports an error on exit.

Note: this takes a long time, as by default the debug version of
dex2oat is used. The author has seen runs of about 6 minutes.

Bug: 18605772
Change-Id: I32c270d2cf8a104f154bdf91875670b03d3f5d3b
c9338b97c70d1b734695ccf9cb667708ac288b9d 03-Dec-2014 Nicolas Geoffray <ngeoffray@google.com> Explicitly give compiler options to test scripts

This makes tests pass when ART_USE_OPTIMIZING_COMPILER=true.

Change-Id: I579c0371033435ead6b06830f15c00dbf7e98005
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
130bd1b89306edc7f8aa336edd9d6ba398d7d9de 03-Nov-2014 Nicolas Geoffray <ngeoffray@google.com> Remove generated file if compiling the image failed.

Change-Id: Ie809ad15d090e8303ec6ce308f76fc7f3f80cadd
08d5e282d41b52c3dc997eb682e03965e6f7ed56 03-Nov-2014 Nicolas Geoffray <ngeoffray@google.com> Add missing $() when testing TARGET_ARCH.

Change-Id: I02a25022d144ad2a502278755ff286278109a830
a136ab558c4726bebaa393c15631fb7e1dfc3d80 31-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Only use Quick for optimizing on arm64.

Also, force recompilation of the images with optimizing at each
dex2oat change.

Change-Id: I4a6e3a7badc3dae4f35d4eb93659a0d59569cd1a
7b76ec4bd071571c138514449dbb72016f16cb75 30-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Also use Quick for target boot image.

Change-Id: I4b04effa45b4f0af7a5b0220b0dd50e6697b9349
42d641bfd9ef3c03c68177b2a429b20056670d86 27-Oct-2014 Alexandre Rames <alexandre.rames@arm.com> Opt compiler: Add ARM64 support for the Mul IR.

Also disable compilation and use of the boot image with
the optimizing compiler: this won't work with the way
we're bringing up arm64 and we need to find a better
solution.

Bug: 18147756

Change-Id: I6ec0de73681f9226d095bc3db92338dbd46499aa
70587a24fdec9a14192e57fe148aeb3374b10635 29-Oct-2014 Andreas Gampe <agampe@google.com> ART: Fix multi-image testing

Also, make an unknown compiler backend string fail dex2oat.

Change-Id: I878aef47d3c2c84b8479420e1a7ea2852993de35
c23c9c93aade8dd99d23ad796888cbf2f7f96a47 28-Oct-2014 Andreas Gampe <agampe@google.com> ART: PIC testing

Adds run-test support for PIC testing.

For the core image, enable with ART_TEST_PIC_IMAGE=true.
For the tests themselves, enable with ART_TEST_PIC_TEST=true.
Off by default.

Bug: 18035729
Change-Id: I23e396a2fa47b9471145f45b3c63f447871ebebf
63fc30e201a74dbad9422a6dbd4c39e4b60ac4c5 25-Oct-2014 Andreas Gampe <agampe@google.com> ART: Create and use multiple core images

Update test infrastructure to understand several core variants.
Now compiles three core.art/oat variants:

* core.art/oat, default-compiled
* core-interpreter.art/oat, interpret-only
* core-optimizing.art/oat, optimizing compiler

The run-test variant implies which core variant is used.

Change-Id: Ieeaf2df90faee2b04c209b950897e77806205fe4
c42893e493a4c2423f680b622581bdde94f3ff39 17-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Just depend on TARGET_CORE_DEX_FILES.

There is no such thing as a 2NDTARGET_CORE_DEX_FILES.

Change-Id: Idccf31a7b9d7f2329678352805b260a48851d568
611e1db69aff00f297d0d59c47af3c9ae563eb7b 09-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Makefile cleanups.

Also add the DEX2OAT_FLAGS to the generation of core.oat/core.art.

Change-Id: I5d113fad460b2e14fc652816069adba29ca744b8
1ffa074c9be5c77b9c0a3536bf18665fdc0c5c88 06-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Make which dex2oat version to use configurable.

Change-Id: I86503a51538c0b48ad96e8624b81461c2ba3279a
1ef4ce87e54a595a67263e550916b97a1b468b99 27-Aug-2014 Alex Light <allight@google.com> Really fix tests.

Remove extra line in Android.run-test.mk.
Update junit code in 082 and 021.
Set correct bootclasspath for --no-image.
Make host core.art depend on dex files being installed.
Make 118 pass in the correct bootclasspath.

Bug: 17290452

Change-Id: I415eddfa3632ec7eda927abe95925202de193749
3d4e684d05a43bb7ae182112b58bd8322fd64b2b 29-Jul-2014 Brian Carlstrom <bdc@google.com> Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

This reverts commit b1efe9746724f28773d185c7137c16ca8207ed47.

Change-Id: I5af2fae2c7b72e6ded72f00d3f7d4f306f6703ee
b1efe9746724f28773d185c7137c16ca8207ed47 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.

If dex2oatd changes, we need to re-run .oat/.art file generation.

Change-Id: I43487e024745b22b1681f4ff558bac6fd07d9881
147eb41b53729ec8d5c188d1cac90964a51afb8a 11-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.

Bug: 16256184
Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73

Conflicts:
compiler/dex/quick/arm64/target_arm64.cc
compiler/image_test.cc
runtime/fault_handler.cc
69dfe51b684dd9d510dbcb63295fe180f998efde 11-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.

Bug: 16256184
Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73
7fb36ded9cd5b1d254b63b3091f35c1e6471b90e 10-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Add implicit null and stack checks for x86""

Fixes x86_64 cross compile issue. Removes command line options
and property to set implicit checks - this is hard coded now.

This reverts commit 3d14eb620716e92c21c4d2c2d11a95be53319791.

Change-Id: I5404473b5aaf1a9c68b7181f5952cb174d93a90d
0025a86411145eb7cd4971f9234fc21c7b4aced1 11-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Revert "Revert "Revert "Add implicit null and stack checks for x86"""

Broke the build.

This reverts commit 7fb36ded9cd5b1d254b63b3091f35c1e6471b90e.

Change-Id: I9df0e7446ff0913a0e1276a558b2ccf6c8f4c949
34e826ccc80dc1cf7c4c045de6b7f8360d504ccf 29-May-2014 Dave Allison <dallison@google.com> Add implicit null and stack checks for x86

This adds compiler and runtime changes for x86
implicit checks. 32 bit only.

Both host and target are supported.
By default, on the host, the implicit checks are null pointer and
stack overflow. Suspend is implemented but not switched on.

Change-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a
44a3c1914032dc97aab152c83929e97ad41fb538 10-Jul-2014 Colin Cross <ccross@android.com> art: fix host dex2oat runtime args

The runtime arguments need to be prefixed with -Xmx or -Xms.
This only worked before because DEX2OAT_XMS, etc. were blank
due to bugs in build/, which resulted in --runtime-arg --runtime-arg
and anything starting with -- as the argument to --runtime-arg is
silently ignored.

Change-Id: I18607a6fd8d0004466404045f8dc4495eb6ab275
3d14eb620716e92c21c4d2c2d11a95be53319791 10-Jul-2014 Dave Allison <dallison@google.com> Revert "Add implicit null and stack checks for x86"

It breaks cross compilation with x86_64.

This reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.

Change-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7
670134e8555d40fc880271b1ab97483094b4b816 08-Jul-2014 Brian Carlstrom <bdc@google.com> Make dex2oat heap size product configurable [art]

Bug: 15919420
Change-Id: I1b4f3256f6352b2d3e268991406def9e8efab945
53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c 12-Jun-2014 Alex Light <allight@google.com> Add patchoat tool to Art.

Add a new executable called patchoat to art. This tool takes already
compiled images and oat files and changes their base address, acting as
a cheap form of relocation.

Add a --include-patch-information flag to dex2oat and code to add
required patch information to oat files created with the quick compiler.

Bug: 15358152

Change-Id: Ie0c580db45bb14ec180deb84930def6c3628d97d
afd9acc30bdd11cdd12d8209eb994cb371c65e33 17-Jun-2014 Ian Rogers <irogers@google.com> Multilib ART host.

Build ART for the host as a multilib project with dalvikvm32 and dalvikvm64
running as 32 or 64-bit repsectfully. Note, currently multilib host builds
are not the default, you make the so by setting BUILD_HOST_64bit=1.
Extend tests to execute in both 32 and 64-bit modes. By default both 32 and
64-bit tests are run, add 32 or 64 to the end of a test name to run it in
purely that flavor.
Given the extra spam, modify oat tests to only generate console output when
the test fails.
Change the test harness so that common commands are run when a test should be
skipped, when it passes or when it fails. Use these commands to generate a
summary of passing, skipped and failing tests. Tests will be skipped if they
are known to be broken or if a test has already failed. Setting the variable
TEST_ART_KEEP_GOING=true will force working tests not to be skipped.
In this change all tests running on the optimizing compiler are marked broken
due to breakages running them in a multilib environment.
Break apart Android.common.mk into its constituent parts, along with other
pieces of reorganization.

Stylistic nit, we refer to make rule targets as targets thereby overloading
the term target. While consistent with make's terminology, its confusing with
the Android notion of target. I've switched to just calling targets rules to
avoid confusion in host tests.

Change-Id: I5190fc3de46800a949fbb06b3f4c258ca89ccde9
f5449a2ebde6fee2c9806ff2a447fc1748f3c6f2 26-Jun-2014 Nicolas Geoffray <ngeoffray@google.com> Fix build rule.

There is no such thing as 2ND_HOST_CORE_DEX_FILES.

Change-Id: I87187267effe239c898aa504b914138e4f722a80
ca3aabac5748c256c42839dd16e8c80a09d99a48 23-Jun-2014 Dave Allison <dallison@google.com> Fix implicit check option handling for non-cross-compiles

This fixes an issue where the compiler was not being told to
generate implicit checks but the runtime was expecting them.

Bug: 15747876
Change-Id: I65e7475bac245c44d5094eb666d67bc1af327ab1
e3d5581266301e6a672af6233220037abf52fea1 11-Jun-2014 Ian Rogers <irogers@google.com> Fix host Mac build.

Ptr - ptr is an int not size_t on the Mac.
Fix use of assembly literal macro.
Remove forgotten about WITH_HOST_DALVIK.

Change-Id: I64db1927b2c6a145b6a96ffcc33d704914bba1bb
f662e0600ae0e0a1a5f732dc3aae25679ffa102f 20-May-2014 Brian Carlstrom <bdc@google.com> Updating clean-oat again

Also fix test-art-host-oat dex2oat'ing to use the proper new directory layout.

Change-Id: I4a65e88910a72dbe342c814551e4364d73e26e9c
bbf079eb47cd9e7f96ceaf5bba89719e13cb9635 19-May-2014 Brian Carlstrom <bdc@google.com> Remove unneeded realpath that was causing bad dependencies in a clean build

(cherry picked from commit 361b324a396071aa6e32ca3296ab07818f887e59)

Change-Id: I59756a4ad89014d01e4022caf63d1ac34bef5c07
361b324a396071aa6e32ca3296ab07818f887e59 19-May-2014 Brian Carlstrom <bdc@google.com> Remove unneeded realpath that was causing bad dependencies in a clean build

Change-Id: Id63d264847d3859dcb88d6dd1d6031e3991fddbe
0e12bdc49744eb6d5c29b9611a8dbe10bac4cd53 15-May-2014 Brian Carlstrom <bdc@google.com> Add ISA directory to image and odex pathnames.

Bug: 14882223
Bug: 14694978
Change-Id: Ic1b5ae836b8e91ea461dcd4f3da8e38dc3bec00f
2fe07927610177e9b83809e5bdb6d2b3d835a076 21-Apr-2014 Andreas Gampe <agampe@google.com> Fix dependencies in the test suite for multi-target tests

Change-Id: I94dd767490a7cd8cceddc158d90f56f5bd3fef26
668e9d870015297e59d29caa38adb249b2c36350 02-Apr-2014 Nicolas Geoffray <ngeoffray@google.com> Update missed DEX2OAT -> DEX2OATD changes.

Change-Id: I9556ac9ce30fe057e8b278858303e25c547e86ba
1db132d0b88a17d65570199f79be84b844c54c33 26-Mar-2014 Nicolas Geoffray <ngeoffray@google.com> Use debug version of DEX2OAT explicitly.

Change-Id: I57b4c8caedcc6bfbeaa541d8171f8b5b3069c584
afbaa1aab02cfe519d00336870b1bcd24b61378d 26-Mar-2014 Andreas Gampe <agampe@google.com> Build changes to build multilib tests

Test files will be emitted into directories for both first and second
target architectures. Going with the naming scheme for binaries,
single-architecture and 32b cases have the standard name, and
64b goes into a directory with "64" suffix.

In multi-architecture setups, the default concrete test targets are
extended with a "32" and "64" suffix, e.g., test-art-target-oat-JniTest64.
The suffix-less form is linked to the primary architecture target (usually 64).
That means running combined targets, e.g., test-art-target-oat, will only
test the primary architecture right now.

Fixed target run tests calling the right dalvikvm. Fixed library search
path for tests derived from CommonRuntimeTest.

Missing in this work-in-progress is correct handling of dex2oat for the
secondary architecture. To make it work on 64b, comment out line 101
in build/Android.executable.mk

Change-Id: I3d260994e6efe8b73b56c71994053cc9392943a9
922141ac9a0ffd4888583aa6c6a06aadc016cdb8 12-Mar-2014 Andreas Gampe <agampe@google.com> Fixed and refactored 64b host build

Add a global variable ART_HOST_ARCH in build/Android.common.mk that
will be set to x86 or x86_64 depending on BUILD_HOST_64bit. This is
then used as the instruction set for dex2oat.

Change-Id: Icec8ef9139f780314a3ff325a729750e65d6d8da
befbd5731ecca08f08780ee28a913d08ffb14656 06-Mar-2014 Ian Rogers <irogers@google.com> Fix host architecture for 64bit.

Also, hack x86 assembler for use as a x86-64 trampoline compiler's assembler.
Implement missing x86-64 quick resolution trampoline.
Add x86-64 to the quick elf writer.

Change-Id: I08216c67014a83492ada12898ab8000218ba7bb4
9583fbcf597eff6d0b3c5359b8e8d5f70ed82c40 28-Feb-2014 Nicolas Geoffray <ngeoffray@google.com> Remove oat file location in the image.

The oat file is now always in the same directory, and has the
same name as the image file. Only difference is the extension.

This also removes the need for host-prefix.

Change-Id: I16d1f7aeb1d58372d41921694664e9c321afc1ad
2b817c9012d58836cd090b1609c9405321999d04 29-Jan-2014 Brian Carlstrom <bdc@google.com> Remove boot.art phony target

Change-Id: Idb1e22828567fa2c89c2e0057d5bc65a70ba2f32
660f8f0d3c9b703660c683ce304eccce31fbf4dd 29-Jan-2014 Brian Carlstrom <bdc@google.com> Remove boot.art phony target

Change-Id: Idb1e22828567fa2c89c2e0057d5bc65a70ba2f32
84c7ac294130576f6886abbebe382031c20404c3 17-Jan-2014 Brian Carlstrom <bdc@google.com> art: PRODUCT_DEX_PREOPT_IMAGE_IN_DATA

(cherry picked from commit 483236b6662f6671e4fd31279500af4f196e0ad3)

Change-Id: I0f668dd8e3193f7d00618ff3d4535f39f5744dfd
8a7b39caf0eaba78a4123e1e299c8b3e13b1d980 18-Dec-2013 Ying Wang <wangying@google.com> Build boot.art only if we are building the host toolchain.

This fixed the Mac checkbuild.

Change-Id: I88780cddf1fec6306e0c54b6d801a34b2ddafabf
7ab763caf16cc88a9696c1ebb727242106af61eb 09-Dec-2013 Brian Carlstrom <bdc@google.com> Move boot image generation to the build project

Change-Id: I1c87640baa681ed5f0bc10bca8dc130895bb6a95
ce90ec44861977372aeac550ed6c878c908bd774 06-Nov-2013 Dave Allison <dallison@google.com> Don't force dex2oat run on dex2oat changes

This was accidentally checked in on a previous CL.

Bug: 11299025
Change-Id: I6c695dc891db9102fabd7805ee9480dfc41d0408
1bd2ceb3a8c68ae6ea1f9627b588a7bc7a74487f 06-Nov-2013 Brian Carlstrom <bdc@google.com> Make missing DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES an error

Change-Id: I3ca23e4db80c8ab8a86da6408cf38daccd4cfaf1
7020278bce98a0735dc6abcbd33bdf1ed2634f1d 23-Oct-2013 Dave Allison <dallison@google.com> Support hardware divide instruction

Bug: 11299025

Uses sdiv for division and a combo of sdiv, mul and sub for modulus.
Only does this on processors that are capable of the sdiv instruction, as determined
by the build system.

Also provides a command line arg --instruction-set-features= to allow cross compilation.
Makefile adds the --instruction-set-features= arg to build-time dex2oat runs and defaults
it to something obtained from the target architecture.

Provides a GetInstructionSetFeatures() function on CompilerDriver that can be
queried for various features. The only feature supported right now is hasDivideInstruction().

Also adds a few more instructions to the ARM disassembler

b/11535253 is an addition to this CL to be done later.

Change-Id: Ia8aaf801fd94bc71e476902749cf20f74eba9f68
2b07096c1de5461339d9ea97869d33b5166544ae 29-Oct-2013 Brian Carlstrom <bdc@google.com> Fix Mac build

Change-Id: I2125cd9555c48ef69627f0824ae60759fc6ac853
dc959ea822b100740424fc2eee4037512bde82c2 28-Oct-2013 Brian Carlstrom <bdc@google.com> Make ART's run-test support Dalvik so we can remove dalvik/tests

Change-Id: Iba4ddf39169346573c97b443d5d65c6b8963fd4b
c0ee6506e0c824f6ea737b37e1d6c23f5d258dea 13-Jul-2013 Brian Carlstrom <bdc@google.com> Fix LOCAL_ADDITIONAL_DEPENDENCIES in Android.oat.mk

(cherry picked from commit c8475a6eda5d640263210e1e0c025d15b6180c02)

Change-Id: Ie97484e53c9187fdcaaf9f27b6f0c3770ab7d7a9
c8475a6eda5d640263210e1e0c025d15b6180c02 13-Jul-2013 Brian Carlstrom <bdc@google.com> Fix LOCAL_ADDITIONAL_DEPENDENCIES in Android.oat.mk

Change-Id: Ie9177e15dd53f7a89a8f12d056fb0b4386ec5fba
51c2467e8771b56e25ae4f17f66522f979f57a7e 12-Jul-2013 Brian Carlstrom <bdc@google.com> libart-compiler cleanup

- Move compile-time code to src/compiler and libart-compiler
OatWriter, ImageWriter, ElfWriter, ElfFixup, ElfStripper, stub generation
- Move ClassReference and MethodReference to remove MethodVerifier dependency on CompilerDriver
- Move runtime_support_llvm.cc out of src/compiler and next to runtime_support.cc
- Change dex2oat and gtests to directly depend on libart-compiler
- Move non-common definitions from Android.common.mk to more specific makefiles
- Add LOCAL_ADDITIONAL_DEPENDENCIES on appropriate makefiles

Change-Id: I897027e69945914128f21f317a92caf9255bc600
f3b3bf13247364eb111cd20493a236e8f3ce2164 26-Jun-2013 Brian Carlstrom <bdc@google.com> Make art use core-libart explicitly (part 2)

Change-Id: Id08306ae147c745a407635d6ce93019f14145181
(cherry picked from commit eae05507f22a9f58d2058514496afd0f9b3e94b6)
eae05507f22a9f58d2058514496afd0f9b3e94b6 26-Jun-2013 Brian Carlstrom <bdc@google.com> Make art use core-libart explicitly (part 2)

Change-Id: Id08306ae147c745a407635d6ce93019f14145181
3b010aa88cec548a9a4213c7cbdc416f73ea5c3c 26-Jun-2013 Brian Carlstrom <bdc@google.com> Make art use core-libart explicitly

Change-Id: Ibc75910df56428dd8d5d2a4bab41dc3d2a3c61d7
654d91957edb4d1f7534ed5d743cf914db763448 01-May-2013 Brian Carlstrom <bdc@google.com> Add conscrypt to art tests

Change-Id: I26694517d398b0f84f48c7496c3159b7863fa833
3f47c12487250f61f3be95e9f275e3b08e2c49fb 07-Mar-2013 Brian Carlstrom <bdc@google.com> Fix portable build on build server by removing depenency on ANDROID_HOST_OUT

Change-Id: I713a156468d14e07c784013c3c37a18c3c075a71
265091e581c9f643b37e7966890911f09e223269 30-Jan-2013 Brian Carlstrom <bdc@google.com> Remove ExtractCodeAndPrelink and switch Portable to MCLinker

Change-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2
cb91f1aaf22a786368f1e35d8879662c366574f2 01-Feb-2013 Brian Carlstrom <bdc@google.com> Improve ART_BUILD_ disabling

Warn when builds are disabled
Disable .oat generation as appropriate

Change-Id: Ifee2bba943d8aa29ef543c7f552f6c8673aa4268
8161c0336b97e11e02c000af357f8f40de2e23e4 31-Oct-2012 jeffhao <jeffhao@google.com> More MIPS fixes. The vm-tests and oat tests all work on the emulator.

- Changed the base address of the art image for MIPS to allow enough
space for CTS to run on the target.
- Fixed exception delivery to jump without linking, and to preserve the
value of $gp.
- Added dumping of /proc/self/maps whenever mmap fails, and cleaned up
other debugging output (not MIPS related).

Change-Id: I4e92e992ee6a6167e901db8ad90a6062bbc5168a
85545cd13c16c5074cca987f65247d7abddb39f7 27-Jun-2012 Brian Carlstrom <bdc@google.com> Add PHONY target for host core.art so that is included in default build

Change-Id: I4a2161de73a391b0db953be0e5cd8ec3f79bb9b8
1f71ae819e506c40ad5adccec4b2e57699e0b5c4 25-May-2012 jeffhao <jeffhao@google.com> Fix host build to properly build x86.

Change-Id: Ib8acb75cca2f0728297180e082a89f4f81784e75
58e63f9e999605bce6e8dc301eaf5e2ee0981e03 24-Apr-2012 TDYa127 <tdy@google.com> Higher degree of parallel compilation on the LLVM side.

Change-Id: If69deaa7c787021a7b136719ce316fff803aa3b0
8cfa88200fcae8dd0a9c4d3cadffc9284985c771 21-Apr-2012 Shih-wei Liao <sliao@google.com> Higher degree of parallel compilation on the LLVM side.

Non-LLVM side is fast, so 2 threads will make do there.

Change-Id: Id74aa063d965366ead16d25b22dc14efdccd1bb6
d0b3a301128904cc1717dd963e45c1b18b78fb8a 05-Apr-2012 Brian Carlstrom <bdc@google.com> Do not rerun dex2oat just because dex2oat changed

Change-Id: I4b3c6ce3a451776ca9b0ca846c8aa01fcdb5ee85
57b86d47b66322693a070185fadfb43cb9c12eab 28-Mar-2012 Ian Rogers <irogers@google.com> Refactor runtime support.

Change-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df
3bbbe82cfec2d3b03b0b560a3978a8231a9a51d3 18-Mar-2012 Brian Carlstrom <bdc@google.com> Add disabled --instruction-set=X86 for test-art-host-oat

Change-Id: I4e05f5c8a8ac59ef74287626f0d3ec46507870d2
73666be63d30f9af5487982f69600be38caaed1b 11-Mar-2012 Brian Carlstrom <bdc@google.com> Add dependency from dex2oat to supporting libart-compiler-* libraries

Also make .art the primary build rule, not the .oat. The
build/core/dex_preopt.mk rules depend on the .art files, and without
this, unnecessary rebuilds can happen when the .art file is
regenerated.

Change-Id: I0b116d6975916b9140e7ef095f8b0ec994c8e50f
4d3c07f0bbfd07815f2ac848ad2b08979b9bee4d 08-Mar-2012 Brian Carlstrom <bdc@google.com> Fix core.oat dex file dependencies

Change-Id: Id543e71c01b65b40abdfd658f6969b3d62c6e04e
87587cb6e34b17daf76a50c27bf7c317a28ed8c4 08-Mar-2012 Brian Carlstrom <bdc@google.com> Update core image to include everything needed by core-tests

Change-Id: I3dd20bf3e9da85a99abdee9994d1d02cbbda86cf
04941d992eca73f23ba268a0f422d501502cd6cf 19-Feb-2012 Brian Carlstrom <bdc@google.com> Always run dex2oat (2 of 3)

Change-Id: I2714508cbd655adfd9c6d46b40eedabc9d83dff6
a004aa933a58428489e42d77f707c2b063b73747 09-Feb-2012 Brian Carlstrom <bdc@google.com> user build support for art (2 of 3)

Change-Id: I4696fee58e43db48540e2442c4235fc4bb02d9e3
bd411021057416e56a1544b98831b92faf66a1a1 07-Feb-2012 Brian Carlstrom <bdc@google.com> trygon support

Change-Id: I27ff7e26b583614f2577aed79dcd629ad4595e63
a6cc893c4b142cd410fc956963b6f5a014e983ad 04-Jan-2012 Brian Carlstrom <bdc@google.com> Add installd support to dex2oat

Change-Id: Id1a64403ccea7dc2c1e8b8340d33d383d4045a33
29e7ac74a3f9aec192099fec381baadaa55730ad 06-Dec-2011 Brian Carlstrom <bdc@google.com> Moving from libdvm to libart (1 of 5)

Change-Id: I6541802c5f403a4ba4424818084b94bebe71dfca
6ef827a33b04fd5413d2ad88fd4599ca1920c824 11-Dec-2011 Brian Carlstrom <bdc@google.com> Revert dex2oat file locking

Effectively "git revert 234da578a2d91ed7f2ef47b2ec23fb0033e2746b"

Changed run-test to do dex2oat on the host to eliminate original motivation for dex2oat locking

Change-Id: I58d64f9b2ad7cf137df865945dd31361ca57f675
ae826983f7903bc0a6bbbe8426bf393fb2f6d747 09-Nov-2011 Brian Carlstrom <bdc@google.com> Add --image-classes to dex2oat

Change-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67
234da578a2d91ed7f2ef47b2ec23fb0033e2746b 04-Nov-2011 Elliott Hughes <enh@google.com> Basic file locking.

If someone's already doing dex2oat, wait for them to finish rather
than duplicate their work.

Change-Id: Id620c75e013cbbcc84f5bf62a7629533a95307df
5d84040e2231de1d48e6f30cab2cc8d4beb8effe 25-Oct-2011 jeffhao <jeffhao@google.com> Created --runtime-arg switch for dex2oat to pass arguments to runtime.

This replaces the -Xms, -Xmx, and -verbose options.

Change-Id: Idc023b6d369bd8b5df932b9f2eb6dbc79d591ab1
31edec5b9e506cb702818c074ffef4edcc142105 17-Oct-2011 Brian Carlstrom <bdc@google.com> Disable StrictMode when booting with art

Change-Id: I2a19136ec960399f2d492d010e74f4d05817af86
b7bbba49d88eae58223d9878da4069bf6d7140bf 13-Oct-2011 Brian Carlstrom <bdc@google.com> Add oatopt drop in replacement for dexopt

Change-Id: I094375230af2d9a88e30245b390cac71be7b50f4
b8233d140270a2545d31af0c8818c10b684dfa22 13-Oct-2011 Brian Carlstrom <bdc@google.com> Fix compilation of boot image and oat

Change-Id: I7de0bb04adac4c68cb410cefec86f50bb30dddea
2b7cdf4c0243e1bbf1989a5e270d23857d43269f 13-Oct-2011 Brian Carlstrom <bdc@google.com> Teach make that to make an art file, you make the oat file.

Change-Id: Ie9130eb0af4230bfe280d549c559762c7643e4ad
03a20ba67cfdc46f5ad8d77242a666a4cb0512f2 13-Oct-2011 Brian Carlstrom <bdc@google.com> Implement DexFile_getClassNameList

Change-Id: I9b48628e338a5346bc3ac21f3469e4e3d224a956
47a0d5a6f221066c3daf7f67f2122ed9c9cd217c 13-Oct-2011 Brian Carlstrom <bdc@google.com> Move art content to /data

oat tests, gtests, and run-test content to /data/art-test
boot.oat and boot.art to /data/art-cache

Change-Id: I68f9f6798bc4ea0596642ff5624f3e77dec6ccbe
58ae9416e197ae68ed12ed43d87407d4dfb15093 04-Oct-2011 Brian Carlstrom <bdc@google.com> Simplify command line arguments

Change-Id: I9d6902b0c447fd8fbe5600fd36139791b2ceefb7
e24fa61603a60ade3797e4a0c8b3fccb346cb048 29-Sep-2011 Brian Carlstrom <bdc@google.com> Separate oat from image

Change-Id: If2abdb99826ead14e3465d90ba2acffd89709389
27ec961a1da540ba7f16c07a682585ab167317ad 20-Sep-2011 Brian Carlstrom <bdc@google.com> Adding oat_process

- Added oat_process, a version of app_process use to launch frameworks apps
- Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm
This is just a special makefile, frameworks/base/core/jni code is used for source
- Added support for build a boot.oat with the full BOOTCLASSPATH
The older smaller boat.oat is now core.oat
- Added mem_map code for making sure a requested memory region is available
Moved mem_map code to cc file to make easier to debug with smaller rebuild
- Moved oat base address to 0x6000000 as a work around to host addres conflict
- Added -Xms and -Xmx options to dex2oat to allow build specific memory options
- Fixed miranda method initialization problem found compiling full bootclasspath
- Made compiler.cc tolerant of verification errors found compiling full bootclasspath
- Bumped arena block alloc warning to avoid noise when compiling full bootclasspath
- Marked implicit GC unimplemented to fail fast
- Added --output argument to oatdump
- Made many object asserts tolerate access in IsErroneous state
now that verifier is failing validation of some classes during compilation
- Made runtime tolerate unknown access as short term solution for oat_process
- Workaround SSA issue to restore full bootclasspath compilation
- Added test-art-target-processs to excercise oat_process with "am"
"am" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass

Change-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97
78128a63b2615744760b7f8ab83df9764a5d4a95 16-Sep-2011 Brian Carlstrom <bdc@google.com> oatdump

FROM MAKE:
mm dump-boot-oat

ON HOST:
oatdump --dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --image=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --strip-prefix=$ANDROID_PRODUCT_OUT
oatdump --boot-dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --boot=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --dex-file=$ANDROID_PRODUCT_OUT/system/framework/art-test-dex-HelloWorld.jar --image=$ANDROID_PRODUCT_OUT//system/framework/art-test-dex-HelloWorld.oat --strip-prefix=$ANDROID_PRODUCT_OUT

ON TARGET:
adb shell oatdump --dex-file=/system/framework/core.jar --image=/system/framework/boot.oat
adb shell oatdumpd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat

Change-Id: Iad2ae40a9cf2dc28799ff5dc5222d50f1bc6b39f
161928613d3f097108319de60494fab1aab8d48a 13-Sep-2011 Brian Carlstrom <bdc@google.com> Add oat file generation and tests to build

- Currently builds boot.oat for host and target
and target oat files for art tests.
- Added cross compilation support via --strip-prefix option to dex2oat
- Reduced output to prevent build log spam (Compiler::verbose_)
- Added image roots for recovering important pointers on image load
- Redid JNI stub creation and made the stub array an image root
- Fixed JNI stub test by making JNI stub array executable
- Fixed JNI UnregisterNative to having it reinstall the JNI stub
- Fixed ARM JNI stub to generate PIC code (with irogers)
- Fixed JniCompiler to generate PIC code (with irogers)
- Fixed FindNativeMethod to handle recursive calls
- Finished checkFieldType to use Object::InstanceOf
- Fixed thread unsafe access to ClassLinker::{dex_files_,dex_caches_}
- Added ResolvedMethod variant for use with Method* for context
- Fixed ImageWriter to call FixupMethod
- Fixed ImageWriter to rewrite JNI stub references
- Improved error reporting on lack of ANDROID_DATA dir or art-cache dir
- Fixed Runtime::Start to InitLibraries before creating thread peer
- Implemented Space::IsCondemned to skip spaces loaded from images
- Implemented artFindInterfaceMethodInCache,
allowing interface invocation from managed code

Change-Id: I603e97fa0ac44508ae05a2e47c1cdb4481678d7b